首頁>Club>
9
回覆列表
  • 1 # 幣幣人生

    我們知道,現在大多少瀏覽器都要使用https加密,對於這種情況,很多站點都使用了http強制跳轉https的方法,這種方法有效的解決了http網站在部署了SSL證書後,輸入域名直接跳轉到https的問題,但同樣也有被域名劫持的風險,因為使用者首次訪問站點的時候其實也是用的是http請求,之後被重定向到了https,如何解決這個問題呢?這裡我們要藉助一個新的安全協議:HSTS,教你如何用HSTS實現http跳轉https。

    什麼是HSTS

    HSTS(HTTP Strict Transport Security)國際網際網路工程組織IETE正在推行一種新的Web安全協議,作用是強制客戶端(如瀏覽器)使用HTTPS與伺服器建立連線。

    主要目的是為了解決HTTPS網站首次請求時使用的是未加密的HTTP協議,也就說使用者一般訪問我們的網站都是直接在瀏覽器輸入域名,比如morong.me,然後我們的伺服器檢測到是HTTP請求,就301跳轉到HTTPS頁面。那麼前半程採用的就是未加密的HTTP請求,同樣存在被劫持的可能,那麼HTTPS說好的安全性也就大打折扣了!

    開啟HSTS

    開啟HSTS很簡單,只要在我們網站的響應頭裡面新增HSTS即可,下面簡單說下

    1、Nginx伺服器

    找到nginx.conf配置檔案,在網站的server配置程式碼裡面加入如下程式碼:

    server {

    listen xx.xx.xx.xx:443 ssl spdy;

    server_name www.gworg.com;

    add_header Strict-Transport-Security "max-age=31536000;includeSubdomains"#加入此行程式碼

    …… }

    2、Apache伺服器

    LoadModule headers_module modules/mod_headers.so

    <VirtualHost 0.0.0.0:443>

    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

    </VirtualHost>

    3、Lighttpd

    server.modules += ( "mod_setenv" )

    $HTTP["scheme"] == "https" { setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=63072000; includeSubdomains; preload") }

    4、通用方法

    如果你用的虛擬主機,或者不會折騰WEB軟體,那麼可以採用更簡單的通用方法。原理很簡單,透過程式碼來新增響應頭即可,這裡只分享一下php的做法,其他語言自行參考:

    將如下程式碼插入到網站根目錄的index.php即可:

    header("Strict-Transport-Security: max-age=63072000; includeSubdomains; preload");

    篇尾語:HSTS有利有弊,啟用了的網站如果後期想http訪問需要一段時間才可以恢復,另外目前不是所有的瀏覽器都支援HSTS,所以對於想使用這種方法強制跳轉https的使用者可以綜合考慮下。

    以上,是為大家分享的“教你如何用HSTS實現http跳轉https”的全部內容,如果使用者遇到的問題不能解決,可透過wosign官網客服尋求幫助,凡是選擇wosign ssl證書的網站使用者,wosign可提供免費一對一的ssl證書技術部署支援,免除後顧之憂。

  • 中秋節和大豐收的關聯?
  • 雛鴨舍通風應注意哪些問題?