抱歉,对Nginx和SSL的了解有限。我在运行Nginx的服务器上部署了React和Django应用程序。
React应用程序可以使用“example.org”访问(出于演示目的,名称是伪造的),对于Django应用程序,我将其配置为可以通过端口3000访问,即"example.org:3000“。
该域安装了SSL证书,证书显示在"example.org“中,但在访问"example.org:3000”时,证书对此端口不可用。
我一直试图允许ssl证书以及端口,但不能成功。我用listen 3000 ssl修改了nginx conf文件,但没有成功。请帮帮忙,有没有办法或者我们需要修改ssl证书?
目前Nginx的配置是:
server {
listen 80 default_server;
server_name example.org;
return 301 https://example.org;
}
server {
listen 443 ssl;
server_name example.org;
ssl_certificate /etc/nginx/ssl/ssl_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
location / {
root /home/ubuntu/example/build;
index index.html index.htm;
}
}发布于 2021-09-22 10:33:00
一般情况下,端口与证书或TLS终端无关。如果我的假设是正确的,并且您的Django应用程序本身公开了它的端口3000,那么您需要一个代理配置来为您终止TLS。
server {
listen 8080 ssl;
server_name example.org;
ssl_certificate /etc/nginx/ssl/ssl_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.key;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
.....
}
}这将在8080端口为您终止TLS会话,并将流量转发到您的Django应用程序。还有其他更高级的选项,代理流量到您的应用程序服务器,但这一个可以做到这一点。
注意:如果您想通过NGINX代理流量,请确保端口3000不再向公众公开。
https://stackoverflow.com/questions/69279164
复制相似问题