You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法建立SSL连接:从HTTP迁移至HTTPS的Nginx配置问题求助

解决Let's Encrypt + Nginx配置后无法建立SSL连接的问题

看起来你已经走完了HTTPS迁移的基础流程,但卡在了SSL连接环节。我来帮你梳理几个关键排查方向,一步步定位问题:

1. 先确认证书是否真的生成并配置正确

  • 运行 sudo certbot certificates 命令,查看Let's Encrypt是否成功为你的域名颁发了证书。如果列表里找不到你的域名,说明证书生成环节出了问题,得去日志里找原因。
  • 打开你的Nginx配置文件(通常在 /etc/nginx/sites-available/ 或 /etc/nginx/conf.d/ 目录下),检查HTTPS服务器块的证书路径是否正确:
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name yourdomain.com; # 替换成你的实际域名
    
        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    }
    
    注意路径里的域名要和实际生成的证书目录完全一致,别写错字。

2. 检查Nginx配置是否有语法错误

  • 执行 sudo nginx -t 验证配置文件语法,如果输出显示 test failed,跟着提示修正错误(比如缺分号、路径写错这类低级问题)。
  • 配置没问题的话,一定要重启Nginx生效:sudo systemctl restart nginx

3. 确认防火墙是否开放了443端口

  • 如果你用的是UFW防火墙,跑 sudo ufw status 看看规则列表,确认HTTPS(443端口)是否被允许。
  • 要是没开放,执行 sudo ufw allow https 打开端口,再重试连接。

4. 查看Let's Encrypt日志找证书生成问题

  • 证书没生成成功的话,去 /var/log/letsencrypt/letsencrypt.log 里找详细错误信息。常见问题比如域名解析不对,或者服务器没法响应Let's Encrypt的HTTP验证请求。

5. 手动测试SSL握手过程

  • 用 openssl s_client -connect yourdomain.com:443 命令测试握手,看输出里的错误提示。比如提示 certificate verify failed 可能是证书链不完整;提示 connection refused 大概率是端口没开或者Nginx没监听443端口。

额外小建议:试试Certbot自动配置

  • 如果你之前是手动改Nginx配置,不妨换用 sudo certbot --nginx 命令,它会自动完成证书申请和Nginx配置,能减少手动操作的出错概率。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:32:52