代码改变世界

Running serveral https server on a single IP address

2019-03-13 17:41  divl  阅读(347)  评论(0编辑  收藏  举报

Nginx 在一个IP上配置多个https server时,默认只会发送默认server name的证书。这是由ssl 协议本身行为导致的:先建立ssl connection,后发送http请求。即nginx 建立ssl connection时是不知道请求的主机名字,因此返回默认server name的证书。

 

解决方案: 

1. 一个https server 一个IP。

2. 启用sni, 此需要浏览器,本机openssl,nginx 同时支持。

  编译参数:--enable-tlsext

   

$ nginx -V
...
TLS SNI support enabled
...