SSL 后网站无法加载(Let's encrypt + Nginx)

SSL 后网站无法加载(Let's encrypt + Nginx)

我刚刚用 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,然后尝试是否有效。

相关内容