超文字傳輸安全協定（，縮寫：HTTPS；常稱為、或）是一種透過計算機網路進行安全通訊的傳輸協議。HTTPS 經由 HTTP 進行通訊，但利用 SSLTLS 來加密封包。HTTPS 開發的主要目的，是提供對網站伺服器的身份認證，以保護交換資料的隱私與完整性。這個協議由網景公司（Netscape）在 1994 年首次提出，隨後擴充套件到網際網路上。 歷史上，HTTPS 連線經常用於全球資訊網上的交易支付和企業資訊系統中敏感資訊的傳輸。在 2000 年代末至 2010 年代初，HTTPS 開始廣泛使用，以確保各型別的網頁是真實的，保護帳戶和保持使用者通訊，身份和網路瀏覽的私密性。 另外，還有一種安全超文字傳輸協議（SHTTP）的 HTTP 安全傳輸實現，但是 HTTPS 的廣泛應用而成為事實上的 HTTP 安全傳輸實現，因此 SHTTP 並沒有得到廣泛支援。 主要作用 HTTPS 的主要作用是在不安全的網路上建立一個安全通道，並可在使用適當的加密套件和伺服器證書可被驗證且可被信任時，對竊聽和中間人攻擊提供合理的防護。 HTTPS 的信任基於預先安裝在作業系統中的證書頒發機構（CA）。因此，與一個網站之間的 HTTPS 連線僅在這些情況下可被信任： 瀏覽器正確地實現了 HTTPS 且作業系統中安裝了正確且受信任的證書頒發機構； 證書頒發機構僅信任合法的網站； 被訪問的網站提供了一個有效的證書，也就是說它是一個由作業系統信任的證書頒發機構簽發的（大部分瀏覽器會對無效的證書發出警告）； 該證書正確地驗證了被訪問的網站（例如，訪問 httpsexamplecom 時收到了簽發給 examplecom 而不是其它域名的證書）； 此協議的加密層（SSLTLS）能夠有效地提供認證和高強度的加密。 不應將 HTTPS 和在 RFC 2660 中定義的安全超文字傳輸協議（SHTTP）相混淆。 統計 截至 2018 年 6 月，Alexa 排名前 100 萬的網站中有 346 使用 HTTPS 作為預設值，網際網路 141387 個最受歡迎網站的 431 具有安全實施的 HTTPS，以及 45 的頁面載入（透過 Firefox 紀錄）使用 HTTPS。2017 年 3 月，中國註冊域名總數的 011％使用 HTTPS。 根據 Mozilla 統計，自 2017 年 1 月以來，超過一半的網站流量被加密。 瀏覽器實現 當連線到一個提供無效證書的網站時，較舊的瀏覽器會使用一個對話方塊詢問使用者是否繼續，而較新的瀏覽器會在整個視窗中顯示警告。 Google Chrome、Internet Explorer 和 Firefox 等瀏覽器在網站含有由加密和未加密內容組成的混合內容時，會發出警告。 自 2018 年起，Firefox 及 Chromium（以及 Google Chrome、Microsoft Edge）調整了其顯示網站域名及其安全程度的方式，包括不再突出顯示 HTTPS 協議下的網頁及將非 HTTPS 協議下的網頁標註為不安全。電子前哨基金會曾經建議 在理想的世界中，任何網路請求都能預設為 HTTPS 的。 該基金會也曾製作了 Firefox 擴充套件元件來推廣這一建議。Peter Eckersley Encrypt the Web with the HTTPS Everywhere Firefox Extension EFF blog 17 June 2010 在 Chrome 瀏覽器上也有類似的擴充功能。 技術細節 thumb 防攻擊程式之一；Firefox 3 rc1 擴充功能驗證 SSL 網址列和憑證詳細資訊 與 HTTP 的差異 HTTP 的 URL 是由 http 起始與預設使用埠 80，而 HTTPS 的 URL 則是由 https 起始與預設使用埠 443。 HTTP 不是安全的，而且攻擊者可以透過監聽和中間人攻擊等手段，獲取網站帳戶和敏感資訊等。HTTPS 的設計可以防止前述攻擊，在正確配置時是安全的。 協議層 HTTP 協議和安全協議同屬於應用層（OSI 模型的最高層），具體來講，安全協議工作在 HTTP 之下，傳輸層之上：安全協議向執行 HTTP 的程序提供一個類似於 TCP 的套接字，供程序向其中注入報文，安全協議將報文加密並注入運輸層套接字；或是從運輸層獲取加密報文，解密後交給對應的程序。嚴格地講，HTTPS 並不是一個單獨的協議，而是對工作在一加密連線（TLS 或 SSL）上的常規 HTTP 協議的稱呼。 HTTPS 報文中的任何東西都被加密，包括所有報頭和荷載。除了可能的選擇密文攻擊（參見侷限小節）之外，一個攻擊者所能知道的只有在兩者之間有一連線這一事實。 伺服器設定 要使一網路伺服器準備好接受 HTTPS 連線，管理員必須建立一數字證書，並交由證書頒發機構簽名以使瀏覽器接受。證書頒發機構會驗證數字證書持有人和其宣告的為同一人。瀏覽器通常都預裝了證書頒發機構的證書，所以他們可以驗證該簽名。 獲得證書 由證書頒發機構簽發的證書有免費的，也有每年收費數美元到數千美元不等的。 一個組織也可能有自己的證書頒發機構，尤其是當設定瀏覽器來訪問他們自己的網站時（如，執行在公司或學校區域網內的網站）。他們可以容易地將自己的證書加入瀏覽器中。 作為訪問控制 HTTPS 也可被用作客戶端認證手段來將一些資訊限制給合法的使用者。要做到這樣，管理員通常會給每個使用者建立證書（通常包含了使用者的名字和電子郵件地址）。這個證書會被放置在瀏覽器中，並在每次連線到伺服器時由伺服器檢查。 當私鑰失密時 證書可在其過期前被吊銷，通常情況是該證書的私鑰已經失密。較新的瀏覽器如 Google Chrome、Firefox、Opera 和執行在 Windows Vista 上的 Internet Explorer 都實現了線上證書狀態協議（OCSP）以排除這種情形：瀏覽器將網站提供的證書的序列號透過 OCSP 傳送給證書頒發機構，後者會告訴瀏覽器證書是否還是有效的。 侷限 TLS 有兩種策略：簡單策略和互動策略。互動策略更為安全，但需要使用者在他們的瀏覽器中安裝個人的證書來進行認證。 不管使用了哪種策略，協議所能提供的保護總強烈地依賴於瀏覽器的實現和伺服器軟體所支援的加密演算法。 HTTPS 並不能防止站點被網路蜘蛛抓取。在某些情形中，被加密資源的 URL 可僅透過截獲請求和響應的大小推得，這就可使攻擊者同時知道明文（公開的靜態內容）和密文（被加密過的明文），從而使選擇密文攻擊成為可能。 因為 TLS 在 HTTP 之下工作，對上層協議一無所知，所以 TLS 伺服器只能為一個 IP 地址 埠組合提供一個證書。這就意味著在大部分情況下，使用 HTTPS 的同時支援基於名字的虛擬主機是不很現實的。一種叫伺服器名稱指示（SNI）的方案透過在加密連線建立前向伺服器傳送主機名解決了這一問題。Firefox 2、Opera 8 和執行在 Windows Vista 的 Internet Explorer 7 都加入了對 SNI 的支援。 在 TLS 版本 12 中，服務端傳送的證書以明文傳輸，因此中國大陸的防火長城可以對特定網站按照匹配的黑名單證書，檢測到特定證書即執行 TCP 重置攻擊，從而導致 TLS 連線無法建立。這也是一種網際網路資訊審查和遮蔽的技術手段。TLS 版本 13 中服務端證書被加密，然而伺服器名稱指示仍未被加密，併成為防火長城檢測的新手段。 如果 Mac OS X 中的家長控制被啟用，那麼 HTTPS 站點必須顯式地在 總是允許 列表中列出。 歷史 網景在 1994 年建立了 HTTPS，並應用在網景導航者瀏覽器中。 最初，HTTPS 是與 SSL 一起使用的；在 SSL 逐漸演變到 TLS 時，HTTPS 也由在 2000 年五月公佈的 RFC 2818 正式確定下來。 參見 計算機安全 TLS 機會性加密 Stunnel 參考資料 外部連結 RFC 2818：HTTP Over TLS SSL 30 規範 （IETF） CategoryHTTP Category 加密協議 Category 保密通訊 Category 傳輸層安全協議