沒有證書可以使用 Https 嗎?
最近我們的基礎架構團隊告訴我們的開發團隊,您不需要 https 證書。他們提到購買證書的唯一好處是讓消費者放心,他們正在連接到正確的網站。
這與我對 https 的假設背道而馳。
我閱讀了維基百科,它提到您需要一個受信任的證書或自簽名證書來配置 https。
是否可以將 IIS 配置為在沒有任何證書的情況下響應 https ?
不可以。您必須有證書。它可以是自簽名的,但必須有一個公鑰/私鑰對來在伺服器和客戶端之間交換會話對稱密鑰以加密數據。
簡而言之,不,但根據您要如何部署系統,可能會有一些微妙的情況。
HTTPS 是基於 SSL/TLS 的 HTTP,您可以在沒有證書的情況下使用 SSL/TLS,也可以使用 X.509 以外的其他類型的證書。
- 匿名密碼套件:它們可以提供加密,但無需身份驗證。就安全性而言,相當無用…引用RFC 4346:“強烈建議不要使用匿名 Diffie-Hellman,因為它無法防止中間人攻擊。 ”
- 預共享密鑰:它有自己的機制來驗證遠端身份,但是密鑰的共享性質帶來了自己的一系列問題(特別是有限的部署)。
- Kerberos 密碼套件:客戶端可以根據 Kerberos 主體名稱驗證伺服器的身份。
嚴格來說,HTTP over TLS 規範是這樣說的:
通常,HTTP/TLS 請求是通過取消引用 URI 生成的。因此,客戶端知道伺服器的主機名。如果主機名可用,客戶端必須將其與伺服器證書消息中顯示的伺服器身份進行檢查,以防止中間人攻擊。
如果客戶端有關於伺服器預期身份的外部資訊,則可以省略主機名檢查。(例如,客戶端可能連接到一台機器,其地址和主機名是動態的,但客戶端知道伺服器將提供的證書。)在這種情況下,盡可能縮小可接受證書的範圍很重要為了防止中間人攻擊。在特殊情況下,客戶端簡單地忽略伺服器的身份可能是合適的,但必須理解這會使連接對主動攻擊開放。
簡而言之,它顯然是為了與 X.509 證書一起使用(它明確引用了 RFC 2459,後來被 RFC 3280 和 5280 取代:帶有 X.509 證書的 PKI)。
當您使用 Kerberos 密碼套件時,可能會出現邊緣情況。將伺服器的 Kerberos 服務票證視為與通常 HTTPS 中的 X.509 證書具有相同目的可能是有意義的,用於驗證遠端方的身份。它不太符合 RFC 2818 的規則(儘管它可能屬於“如果客戶端有關於伺服器預期身份的外部資訊,則可以省略主機名檢查。 ”),但它不會是完全荒謬。話雖如此,我認為通常的瀏覽器一般不支持 TLS Kerberos 密碼套件(一些可以通過 SPNEGO 身份驗證支持 Kerberos,但這無關緊要)。此外,這也只能在適合使用 Kerberos 的環境中工作。
“$$ Giving $$消費者放心,他們正在連接到正確的網站“實際上是保護他們與您的伺服器之間通信的關鍵要求之一。請使用他們可以驗證的證書,並具有適當的命名約定(RFC 2818 或更新RFC 6125)。