NGINX 两个域名 SSL 提供错误证书

NGINX 两个域名 SSL 提供错误证书

我有两个域名,都是通配符。两个都只使用 https,例如。

*.example.something.com *.example.com

问题是,当我访问https://t12345.example.com

我当前的 nginx.conf 文件有以下条目:

server {

    listen 443   default_server;
    server_name   example.something.com;

   ssl on;
   ssl_certificate "/etc/nginx/star.example.something.com.crt";
   ssl_certificate_key "/etc/nginx/star.example.something.com.key";
}

server {

    listen 443   ssl;
    server_name   example.com;

   ssl on;
   ssl_certificate "/etc/nginx/star.example.com.crt";
   ssl_certificate_key "/etc/nginx/star.example.com.key";
}

nginx 没有报告任何错误,并且两个证书都是有效的通配符证书。

知道为什么它没有获取第二个证书吗?

答案1

您尚未创建与server您尝试访问的主机名匹配的块,因此 nginx 使用server带有匹配listen指令的第一个块来满足请求。

为了解决这个问题,创建一个新的server块或添加适当的server_name到现有的server块。

如果这些确实是通配符证书,并且您希望单个server块处理所有可能的名称,那么您可能应该使用通配符名称为它们提供服务,即:

server_name *.example.something.com;

相关内容