我刚刚用 Let's Encrypt 设置了一个 SSL 证书,当我在 nginx.conf 中将端口从 80 更改为 443 时,但是在 nginx 重启后,网站无法加载,浏览器给了我超时错误错误。
Nginx 日志没有显示任何内容,配置正确。如果我恢复端口 80 的配置,网站就可以再次正常运行。
我的配置:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /var/www/html;
index index.php index.html index.htm;
server_name domain.com;
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
ssl_verify_client off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 TLS-CHACHA20-POLY1305-SHA256 TLS-AES-256-GCM-SHA384 TLS-AES-128-GCM-SHA256 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
client_max_body_size 100M;
error_log /var/log/nginx/nginx_error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ^~ /data {
deny all;
}
}
我以前从来没有遇到过这个问题。
我使用 Debian 10 VPS,并使用 postfix 和 dovecot 设置邮件服务器。我该如何解决?谢谢 :)
答案1
尝试不使用:
ssl_verify_client off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 TLS-CHACHA20-POLY1305-SHA256 TLS-AES-256-GCM-SHA384 TLS-AES-128-GCM-SHA256 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
client_max_body_size 100M;
我通常采用的解决方案是使用 # 注释掉所有不符合必需的以使 NGINX 正常工作。我并不是说应该禁用某些配置变量(例如,tls 1.2 和 1.3 是一个不错的选择),但它有助于调试哪些部分你的配置给你带来了麻烦。
另一件值得尝试的事情是删除 listen 指令后面的 http2,然后尝试是否有效。