Nginx 不在 HTTPS 中 运行
Nginx is not running in the HTTPS
我在 Amazon Linux 机器上安装了 Nginx 并使用配置文件:
http {
upstream allbackend {
#round robin private IP
server 172.31.xx.xxx:8080;
server 172.31.xx.xx:8080;
}
server {
listen 80;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/xxx.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.ddns.net/privkey.pem;
ssl_protocols TLSv1.3;
location / {
proxy_pass http://allbackend/;
}
}
}
events { }
但是,站点 xxx.ddns.net 只能在 HTTP 中使用,不能在 HTTPS 中使用。安全组已定义:
cURL returns 对我来说:
curl https://xxx.ddns.net/
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to xxx.ddns.net:443
这里有什么问题?
您需要一个 server-block 用于端口 80 (HTTP) 和一个用于端口 443 (HTTPS)。端口 80 的 server-block 只是重定向到端口 443 的 server-block。整个配置看起来像这样:
server {
listen 80;
server_name xxx.ddns.net www.xxx.ddns.net;
return 301 https://xxx.ddns.net$request_uri;
}
server {
listen 443 ssl http2;
server_name xxx.ddns.net www.xxx.ddns.net;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxx.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.ddns.net/privkey.pem;
ssl_protocols TLSv1.3;
location / {
proxy_pass http://allbackend:port;
}
}
希望这有助于解决您的问题:)
我在 Amazon Linux 机器上安装了 Nginx 并使用配置文件:
http {
upstream allbackend {
#round robin private IP
server 172.31.xx.xxx:8080;
server 172.31.xx.xx:8080;
}
server {
listen 80;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/xxx.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.ddns.net/privkey.pem;
ssl_protocols TLSv1.3;
location / {
proxy_pass http://allbackend/;
}
}
}
events { }
但是,站点 xxx.ddns.net 只能在 HTTP 中使用,不能在 HTTPS 中使用。安全组已定义:
cURL returns 对我来说:
curl https://xxx.ddns.net/
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to xxx.ddns.net:443
这里有什么问题?
您需要一个 server-block 用于端口 80 (HTTP) 和一个用于端口 443 (HTTPS)。端口 80 的 server-block 只是重定向到端口 443 的 server-block。整个配置看起来像这样:
server {
listen 80;
server_name xxx.ddns.net www.xxx.ddns.net;
return 301 https://xxx.ddns.net$request_uri;
}
server {
listen 443 ssl http2;
server_name xxx.ddns.net www.xxx.ddns.net;
ssl on;
ssl_certificate /etc/letsencrypt/live/xxx.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.ddns.net/privkey.pem;
ssl_protocols TLSv1.3;
location / {
proxy_pass http://allbackend:port;
}
}
希望这有助于解决您的问题:)