文/那年那月
https及https的本地測(cè)試環(huán)境搭建。asp.net結(jié)合https的代碼實(shí)現(xiàn)http網(wǎng)站轉(zhuǎn)換成https網(wǎng)站,以及之后遇到的問(wèn)題等。
一:什么是https
SSL(Security Socket Layer)全稱(chēng)是加密套接字協(xié)議層,它位于HTTP協(xié)議層和TCP協(xié)議層之間,用于建立用戶(hù)與服務(wù)器之間的加密通信,確保所傳遞信息的安全性,同時(shí)SSL安全機(jī)制是依靠數(shù)字證書(shū)來(lái)實(shí)現(xiàn)的。
SSL基于公用密鑰和私人密鑰,用戶(hù)使用公用密鑰來(lái)加密數(shù)據(jù),但解密數(shù)據(jù)必須使用相應(yīng)的私人密鑰。使用SSL安全機(jī)制的通信過(guò)程如下:用戶(hù)與IIS服務(wù)器建立連接后,服務(wù)器會(huì)把數(shù)字證書(shū)與公用密鑰發(fā)送給用戶(hù),用戶(hù)端生成會(huì)話密鑰,并用公共密鑰對(duì)會(huì)話密鑰進(jìn)行加密,然后傳遞給服務(wù)器,服務(wù)器端用私人密鑰進(jìn)行解密,這樣,用戶(hù)端和服務(wù)器端就建立了一條安全通道,只有SSL允許的用戶(hù)才能與IIS服務(wù)器進(jìn)行通信。
提示:SSL網(wǎng)站不同于一般的Web站點(diǎn),它使用的是“HTTPS”協(xié)議,而不是普通的“HTTP”協(xié)議。因此它的URL(統(tǒng)一資源定位器)格式為“https://網(wǎng)站域名”。
二:https的本地測(cè)試環(huán)境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地測(cè)試環(huán)境
2:windows server 2003中IIS6.0 搭配https本地測(cè)試環(huán)境
三:asp.net 結(jié)合 https的代碼實(shí)現(xiàn)
https是由IIS,瀏覽器來(lái)實(shí)現(xiàn)的傳輸層加密,不需要特意的編碼。。。平時(shí)怎么在asp.net里面編寫(xiě)代碼,就怎么寫(xiě)。
很可能要問(wèn),為什么我的站點(diǎn)使用了https之后,用firebug之類(lèi)的軟件查看值提交的時(shí)候,還是會(huì)顯示明文呢?例如,博客園的登陸界面提交。
http://passport.cnblogs.com/login.aspx
為什么這里還是能看到明文的用戶(hù)名和密碼呢?
原因是因?yàn)椋篽ttps(ssl)的加密是發(fā)生在應(yīng)用層與傳輸層之間,所以,在傳輸層看到的數(shù)據(jù)才是經(jīng)過(guò)加密的,而我們捕捉到的http post的,是應(yīng)用層的,是還沒(méi)經(jīng)過(guò)加密的數(shù)據(jù)。
加密的數(shù)據(jù)只有客戶(hù)端和服務(wù)器端才能得到明文 客戶(hù)端到服務(wù)端的通信是安全的
支付寶也是https的,但是他的同時(shí)也增加了安全控件來(lái)保護(hù)密碼, 以前認(rèn)為這個(gè)只是用來(lái)防鍵盤(pán)監(jiān)聽(tīng)的,其實(shí),看下面http post截獲的密碼:這個(gè)安全控件把給request的密碼也先加了密,緊接著https再加次密,果然是和錢(qián)打交道的,安全級(jí)別高多了:)