SNI-孔

SNI-孔

我已購買有效證書:

例如,該網站驗證了它: https://sslanalyzer.comodoca.com/?url=www.example.com

但是當我用 openSSL 測試它時,如下所示:

openssl s_client -showcerts -connect https://www.example.com:443

我明白了

驗證返回碼:18(自簽名憑證)

答案1

SNI-孔

你已經陷入了一個SNI孔

SNI 是伺服器名稱指示。這允許您在同一共用 IP 上擁有多個不同的主機名稱。如果您實際上沒有向啟用 SNI 的伺服器指示伺服器名稱,那麼您將獲得預設憑證。 (這是“SNI 洞”部分。)

除非您指定,否則 OpenSSL 不會向 TLS 伺服器提供伺服器名稱。-servername為此使用參數。

$ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443  -servername www.unival-logistics.com 2>/dev/null | grep -Ei 'subject|issuer|return'
subject=/C=US/OU=Domain Control Validated/CN=www.unival-logistics.com
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - SHA256 - G2
    Verify return code: 20 (unable to get local issuer certificate)

如果您忽略它,那麼您將獲得該主機的預設憑證。這是一個自簽名憑證。 (而且我認為它也不應該在那裡。提供自簽名證書是沒有意義的。)

 $ echo '' | openssl s_client -showcerts -connect www.unival-logistics.com:443  2>/dev/null | grep -Ei 'subject|issuer|return'
 subject=/O=americanfuturegate.com/CN=*.americanfuturegate.com/[email protected]
 issuer=/O=americanfuturegate.com/CN=*.americanfuturegate.com/[email protected]
     Verify return code: 18 (self signed certificate)

檢查安裝狀況

附註:我強烈建議您停用 SSL3。 (SSL 實驗室報告這裡.)

相關內容