gpt4 book ai didi

Nginx TLS-SNI : Use hostname dependent SSL for HTTPS

转载 作者:行者123 更新时间:2023-12-02 03:35:15 25 4
gpt4 key购买 nike

我需要使用两个不同的 ssl 证书,nginx 指向同一个应用程序。

https://domain1.com指向 1.1.1.1
https://domain2.com指向 1.1.1.1.
.
.
.
https://domainN.com指向 1.1.1.1

尝试了以下方法:

server {
listen 80;
server_name domain1.com;
return 301 https://$host$request_uri;
}



server {

listen 443 ssl;
server_name domain1.com;
root /app/dist;

index index.html;

ssl_certificate /etc/nginx/ssl/d1/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/d1/private.key;

location / {

try_files $uri $uri/ /index.html;

}

}

server {
listen 80;
server_name domain2.com;
return 301 https://$host$request_uri;
}



server {

listen 443 ssl;
server_name domain2.com;
root /app/dist;

index index.html;

ssl_certificate /etc/nginx/ssl/d2/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/d2/private.key;

location / {

try_files $uri $uri/ /index.html;

}

}

这不起作用,它只是加载第一个证书,导致在使用第二个域访问时证书无效。

域证书不能合并。我无法为 nginx 旋转两个不同的实例,因为这种情况需要帮助我解决指向同一个 IP 的 n-Domains,最好使用一个 nginx 服务器。

有出路吗?

最佳答案

感谢Richard Smith指出正确的东西!

因此,要将 nginx 设置为对指向同一 nginx 的域使用不同的证书 key 对,我们必须依赖 TLS-SNI(服务器名称指示),其中域名以未加密的文本作为握手。这有助于 nginx 决定将哪个证书 key 对用于传入的安全请求。

可以阅读有关 SNI 的更多信息 here .

继续进行配置。

server {
listen 80;
server_name domain1.com;
return 301 https://$server_name$request_uri;
}



server {

listen 443 ssl;
server_name domain1.com;
root /app/dist;
index index.html;
ssl_certificate /etc/nginx/ssl/d1/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/d1/private.key;

location / {
try_files $uri $uri/ /index.html;
}
}


server {
listen 80;
server_name domain2.com;
return 301 https://$server_name$request_uri;
}



server {

listen 443 ssl;
server_name domain2.com;
root /app/dist;
index index.html;
ssl_certificate /etc/nginx/ssl/d2/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/d2/private.key;

location / {
try_files $uri $uri/ /index.html;
}
}

以上配置将 domain1 和 domain2 的 HTTP (80) 转发到相应的 HTTPS (443) 服务器 block ,其中加载了相应的证书 key 对。
直接处理HTTPS(443)请求。
nginx 通过使用 SNI 选择服务器名称来决定命中哪个 block 。

关于Nginx TLS-SNI : Use hostname dependent SSL for HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com