我有两个域名,都是通配符。两个都只使用 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;