Abd*_*l31 6 ssl https http nginx server
我有 2 个 SSL 网络服务器,我必须使用 nginx 来处理它们。我还有一个 http 服务器(重定向工作正常)。
当我只处理 http 和 https(只有一个 ssl 网络服务器)时,重定向效果很好。
问题是,当我想处理 2 个 ssl 网络服务器时:
na.test.lan 表示 https nnm.toast.lan 表示 https
https 请求由第一个服务器块文件处理,该文件将我重定向到错误的 ssl Web 服务器(可能是侦听端口 443 的第一个服务器块)。
这是我的 ssl.conf :
server {
listen 443;
server_name na.test.lan ;
ssl on;
ssl_certificate /etc/pki/nginx/server.crt;
ssl_certificate_key /etc/pki/nginx/server.key;
ssl_session_timeout 1m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://172.17.100.200/; }
}
server {
listen 443;
server_name nnm.toast.lan ;
ssl on;
ssl_certificate /etc/pki/nginx/server.crt;
ssl_certificate_key /etc/pki/nginx/server.key;
ssl_session_timeout 1m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://179.60.192.3/; }
}
Run Code Online (Sandbox Code Playgroud)
Sud*_*ead -2
您应该为每个 SSL 服务器使用不同的 IP 地址。这是SSL协议的本质,SSL握手必须在建立连接的过程中完成,因此服务器必须选择SSL证书发送给客户端。但此时它对 Host: 标头一无所知,因此它只是选择第一个。
更新:或使用 SNI http://nginx.org/en/docs/http/configuring_https_servers.html#sni