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 实验室报告这里

相关内容