網域名稱 瀏覽器 HSTS和HTTPS的關係

2021-09-02 02:36:30 字數 1346 閱讀 4664

www的英文是worldwideweb,翻譯過來就是全球資訊網。他的含義當年定義為它是基於html超文字標記語言和http傳輸協議為基礎的提供的一種網頁服務。但是現在科技迅猛發展,他還有實際存在的意義嗎?答案是肯定的,只是和以前的作用不同罷了。現在乙個網域名稱後面有很多臺伺服器支撐,也不需要通過字首來確定提供服務的種類了。現在閘道器可以做到上述的要求了,具體我以後也會學習並分享。現在使用只是為了更加易與人們理解罷了。就像csdn的字首就是blog,代表部落格服務的。字首是可以自定義的。

瀏覽器預設是以http的方式進行通訊的,那如果我的**公升級為了https後我該如何讓瀏覽器發起https請求呢?第一種方式就是在niginx上配置重定向301(永久重定向,瀏覽器會快取,快取時間不定,使用者可以手動清除)或者302暫時重定向狀態碼返回給瀏覽器。但是如果這樣總會在不定的時間內瀏覽器會傳送一次http明文請求,這時候如果有居心叵測的人就可以攔截你的http請求,造成安全問題。

hsts的全稱是http嚴格傳送協議,解釋為了解決上述問題。通過這個協議,伺服器可以在返回頭加上

strict-transport-security: [; includesubdomains][; preload]  那麼瀏覽器就會這個進行解析。

max-age:這個是代表有效時間的意思,就是這段時間內瀏覽器都會預設直接發起https請求。如果你每次都會返回這個頭部的話,這個時間會一直累加。但是有個問題需要注意,如果沒有使用hsts的**,你的證書出現了問題,那麼瀏覽器會給使用者警告,但是使用者可以忽略警告繼續訪問你的**,但是如果你啟用了hsts協議,那麼瀏覽器會警告使用者並且會禁止使用者繼續訪問你的**。所以這個值得設定要小心。

includesubdomains:這個意思就是包含子網域名稱的意思。

即使啟用了hsts,那麼瀏覽器至少還會傳送一次http請求,這個請求還是有可能被劫持。有沒有一種方法可以讓瀏覽器直接發起https請求呢。可以,就是上面的可選引數就可以把**加入到內建列表裡面,這個列表是google維護的,其他的一些瀏覽器也會支援這個列表。除了上面的方法還可以通過hsts preload list的官網進行申請。這個東西可不是隨便申請的。他需要你符合下面的規範才可以申請

1.具備乙個有效的證書

2.在同一臺主機上提供重定向響應,以及接收重定向過來的https請求

3.所有子網域名稱均使用https

4.在根網域名稱的http響應頭中,加入hsts header,並滿足下列條件:

過期時間最短不得少於18周(10886400秒)

必須包含includesubdomains引數

必須包含preload引數    摘抄自(

谷歌瀏覽器可以在chrome://net-internals/#hsts查詢,我查了國內的大型**都加這個內建列表了。

如何關閉瀏覽器的HSTS功能

在安裝配置 ssl 證書時,可以使用一種能使資料傳輸更加安全的web安全協議,即在伺服器端上開啟hsts http strict transport security 它告訴瀏覽器只能通過https訪問,而絕對禁止http方式。但是,在日常開發的過程中,有時我們會想測試頁面在 http 連線中的表現...

Jmeter 錄製瀏覽器https請求

jmeter錄製指令碼時,跟http指令碼錄製主要區別是,https錄製需要新增安全證書。一jmeter 伺服器及證書配置。1 開啟jmeter,右鍵測試計畫新增執行緒組,右鍵工作台 非測試元件 http 伺服器 2 設定http 伺服器。埠預設8888,為了避免跟本地fiddler衝突,改成了80...

瀏覽器和瀏覽器驅動對應版本

selenium是thoughtworks公司開發的一款開源的測試工具,主要用來做web端的自動化測試。python安裝selenium,直接使用執行pip install selenium python 命令安裝即可,預設安裝的是最新的,也就是selenium的3.x版本,以前selenium2....