为多个服务器块返回 SSL 证书

为多个服务器块返回 SSL 证书

我有一个包含多个虚拟主机和子域的 nginx 配置。每个子域都需要绑定不同的 SSL 证书。这是我的第一个子域的配置:

server {
listen 443;
server_name a.website.com;

ssl on;
ssl_certificate /etc/nginx/ssl/a/a.crt;
ssl_certificate_key /etc/nginx/ssl/a/a.rsa;
.....

我的第二个配置:

    server {
    listen 443;
            listen 3443;
            server_name b.website.com;
ssl on;
ssl_certificate /etc/nginx/ssl/b/b.crt;
ssl_certificate_key /etc/nginx/ssl/b/b.key;    
....

问题是,如果我访问 b.website.com,则返回 a.website.com 和 b.website.com 的 SSL 证书,而我预计仅绑定 b.website.com。我使用 ssllabs 验证了这一点。

有什么建议吗?

答案1

我没有注意到在 ssllabs 中,第二个证书仅在未启用 SNI 时才返回,这是有道理的,因为两个证书都在同一个 IP 上。显然,我们正在使用的集成不支持 SNI(我知道这很疯狂),所以我想我必须启动另一台服务器。

相关内容