如何強制用戶通過HTTPS SSL訪問網站

原文來自:http://www.evtrust.com/support/index.html

什麼是HTTPS ?它是如何工作的?

        HTTPS是Hypertext Transfer Protocol Secure的縮寫,中文全名叫“超文本傳輸安全協議”。是超文本傳輸協議 (HTTP)加SSL/TLS(數據鏈接層加密技術)的組合,用以鑑定網絡服務器身份並且提供用戶與服務器加密通訊。HTTPS連接經常用於互聯網上的支付交易和敏感信息在網絡上的傳輸。國內最常見也是必須要用的例如各大銀行的網銀,還有國內大部分購物網站,像淘寶,凡客、亞馬遜等, 我們打開這些網站可以看到網址都是以“HTTPS”開頭。

        HTTPS通過SSL/TLS技術,使用(對稱加密、非對稱加密)和HASH算法,在Web服務器和用戶瀏覽器之間完成握手通訊過程,以保證上方的通訊信息的安全、完整、不可抵賴。具體過程首先瀏覽器把自己支持的SSL加密規則發送給Web服務器(對於 VeriSign SSL證書 的加密算法全球99.9%的瀏覽器都支持),Web服務器找出與之匹配的算法,並將自己的身份以SSL證書的形式傳回給用戶瀏覽器端,SSL證書內通常包含CA認證機構名稱(如VeriSign,GeoTrust,Thawte等),SSL 證書內還包含有網站的地址,用戶瀏覽器端會驗證證書的合法性,如果SSL證書受信任,瀏覽器地址欄會顯示一把安全鎖標識使用約定好的私鑰與證書中的公鑰進行匹配,對通訊信息加密生成密文,Web服務器收到密文後用約定好的算法對密文解密。這樣在H通過TTPS通訊時,即便密文被竊取也構成不了任何威脅。

如何強制用戶通過HTTPS SSL訪問網站

        有時候,爲了網站數據傳輸的安全,我們希望用戶訪問網站某些頁面或者整個網站的時候,必須通過HTTPS的方式訪問,而不允許HTTP明文方式訪問,如何正確的配置網站和編寫程序以達到一個理想的效果呢?

        有些網站開發人員,採用了只開放了HTTPS-443端口,而關閉HTTP-80端口的方式,這樣的話,雖然可以造成用戶的確無法用HTTP訪問網站了,但如果用戶通過HTTP訪問網站,譬如直接在地址欄輸入網址www.xxx.com,則系統缺省就採用了HTTP方式,這時用戶就會看到一個網站無法訪問的出錯信息,而絕大多數用戶都不具備專業的網站知識,他們不會認爲是自己輸入不正確,而是認爲網站出錯了。那如何妥善解決來自用戶HTTP的訪問請求呢?

正確的做法,應該是將用戶通過HTTP訪問網站的請求,重新定位到HTTPS請求上。首先,要將網站配置成HTTP和HTTPS都可以訪問的模式,確保80和443端口全部打開,然後在那些必須通過https訪問的頁面的頭部加入一個判斷語句,邏輯如下:

If 用戶是通過HTTP訪問本頁面
Then 用HTTPS方式重新訪問本頁面

以下用ASP和JSP代碼舉例:

asp代碼:

If Request.ServerVariables("HTTPS")="off"
Then response.redirect "https://www.evtrust.com" & Request.ServerVariables("PATH_INFO") response.end
End If

jsp代碼:

String scheme=request.getScheme();
String url=request.getRequestURI();
if(!"HTTPS".equalsIgnoreCase(scheme))
{
response.sendRedirect("https://www.evtrust.com"+url);
return ;
}

對於必須通過HTTPS的頁面,只需加入以上語句,即使用戶是通過HTTP訪問的該頁面,系統也會自動將其跳轉爲HTTPS。

如果您公司的網站或您的郵件服務器還沒有安裝SSL證書,您可以到 易維信產品中心 瞭解或聯繫維瑞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章