- 查看错误日志:通过
sudo tail -f /var/log/nginx/error.log定位具体错误信息。 - 检查证书配置:
- 确保证书路径正确,使用
ls命令确认文件存在。 - 验证证书与私钥匹配,可通过
openssl x509 -noout -modulus -in cert.crt | openssl md5和openssl rsa -noout -modulus -in key.key | openssl md5对比哈希值。 - 若缺少中间证书,通过
ssl_trusted_certificate指令补充完整证书链。
- 确保证书路径正确,使用
- 调整权限:确保证书文件权限为
600,属主为www-data(Nginx用户):sudo chown www-data:www-data /path/to/cert.crt /path/to/key.key sudo chmod 600 /path/to/key.key - 配置协议与加密套件:
- 在Nginx配置中指定安全的TLS版本(如
TLSv1.2 TLSv1.3)和加密套件(参考Mozilla SSL配置生成器)。 - 示例:
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5;
- 在Nginx配置中指定安全的TLS版本(如
- 更新依赖与重启服务:
- 安装OpenSSL开发库:
sudo apt-get install libssl-dev。 - 重启Nginx:
sudo nginx -t(测试配置)→sudo systemctl restart nginx。
- 安装OpenSSL开发库:
- 检查防火墙与端口:确保Ubuntu防火墙(如
ufw)允许443端口:sudo ufw allow 443/tcp。 - 验证配置工具:使用SSL Labs等在线工具检测SSL配置是否正确。
若仍无法解决,根据错误日志中的具体提示(如“ssl handshake failed”“invalid cipher”等)进一步排查。