ssl 证书自签名而不是有效

Ale*_*vić 4 ssl openssl ssl-certificate certificate-authority

我已购买有效证书:

例如,此站点对其进行验证:https : //sslanalyzer.comodoca.com/?url=www.example.com

但是当我用 openSSL 测试它时,像这样:

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

我得到

验证返回码:18(自签名证书)

Sta*_*uff 12

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)
Run Code Online (Sandbox Code Playgroud)

如果您忽略它,那么您将获得该主机的默认证书。这是一个自签名证书。(而且我认为它也不应该在那里。提供自签名证书是没有意义的。)

 $ 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/emailAddress=REDACTED1@example.com
 issuer=/O=americanfuturegate.com/CN=*.americanfuturegate.com/emailAddress=REDACTED1@example.com
     Verify return code: 18 (self signed certificate)
Run Code Online (Sandbox Code Playgroud)

检查安装

旁注:我敦促您禁用 SSL3。(SSL 实验室在此处报告。)