如何配置NGINX SSL(SNI)

时间:2017-04-08 04:22:51

标签: ssl nginx

我有这个NGINX配置如下:

  # jelastic is a wildcard certificate for *.shared-hosting.xyz
  server {
  listen 443;
  server_name _;

  ssl on;
  ssl_certificate /var/lib/jelastic/SSL/jelastic.chain;
  ssl_certificate_key /var/lib/jelastic/SSL/jelastic.key;
  }

  # fullchain2 is a certificate for custom domain
  server {
  listen 443 ssl;
  server_name my-custom-domain-demo.xyz www.my-custom-domain-demo.com;
  ssl_certificate /var/lib/nginx/ssl/my-custom-domain-demo.xyz/fullchain2.pem;
  ssl_certificate_key /var/lib/nginx/ssl/my-custom-domain-demo.xyz/privkey2.pem;
  }
  # additional configuration for other custom domains follows

NGINX服务器接收具有类似*.shared-hosting.xyz模式的主机的请求,例如website1.shared-hosting.xyzwebsite2.shared-hosting.xyz 以及具有不同域的变量主机,如my-custom-domain-demo.xyzanother-custom-domain-demo.xyz等。

现在问题是较低的server NGINX配置会覆盖上层配置。有它,鞋面不再工作, 并且访问*.shared-hosting.xyz会返回证书错误,浏览器会告知证书仅适用于my-custom-domain-demo.xyz

可以做些什么,以便较低的NGINX配置触发*.shared-hosting.xyz域,并且每个其他额外的服务器配置都不会触发 当主持人处于*.shared-hosting.xyz模式时?

1 个答案:

答案 0 :(得分:4)

server_name _;无关紧要(现代版nginx中不需要)。如果找不到匹配serverlisten的{​​{1}},server_name将使用默认服务器

如果nginx指令没有default_server后缀,listen将使用匹配nginx的第一个server块。

如果您的配置分布在多个文件中,那么评估顺序将不明确,因此您需要明确标记默认服务器。

尝试使用listen服务器块:

jelastic

有关详情,请参阅this document