在我的 nginx 服务器上设置 SSL/HTTPS 后不安全

在我的 nginx 服务器上设置 SSL/HTTPS 后不安全

我正在尝试在我的网站上设置 HTTPS/SSL test.example.com

我编辑了我的文件,/etc/nginx/sites-enabled/my_site以便块的顶部server {}是这样的。

server {
    listen 443;
    ssl on;
    ssl_certificate /etc/ssl/cert_chain.crt;
    ssl_certificate_key /etc/ssl/example.key;
    server_name test.example.com;
    error_log /var/log/nginx/debug.log debug;

    ... Rest of code ...
}

我运行了nginx restart。但如果我在 Chromium 中访问https://test.testexample.com,我的浏览器会警告我与该网站的连接不安全。

铬错误:

Your connection is not private
Attackers might be trying to steal your information from test.example.com (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_COMMON_NAME_INVALID

This server could not prove that it is test.example.com; its security certificate is from example.com. This may be caused by a misconfiguration or an attacker intercepting your connection.

我的证书由 Comodo 颁发。我按照 Namecheap 的指南将 SSL 集成到我的网站。步骤 3:https://www.namecheap.com/support/knowledgebase/article.aspx/9419/0/nginx

答案1

NET::ERR_CERT_COMMON_NAME_INVALID ...
此服务器无法证明它是 test.example.com;其安全证书来自 example.com。这可能是由于配置错误或攻击者拦截您的连接造成的。

服务器返回的证书与 URL 中的名称不匹配。根据此描述,您已订购了证书,example.com但尝试访问的站点并非test.example.com颁发证书的域。

此问题可能是由于对 URL 中的域名与证书的比较方式存在错误理解所致。一般来说:

  • 证书仅对证书的主题备用名称部分中明确提及的域有效(Chrome 会忽略 CN)。这意味着example.com不匹配test.example.com
  • 如果有通配符,则只能有一个*,它必须是最左边的标签,并且它只匹配域的单个部分,即,的证书*.example.com将匹配www.example.com和,test.example.com但不匹配www.test.example.com

相关内容