在 Debian 上用 Nginx 配置 SSL 后浏览器仍提示“不安全”,通常不是 Nginx 本身的问题,而是证书或配置不正确。常见原因和排查方法如下:
如果是自己用 openssl 生成的证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 ...
浏览器一定会提示不安全,因为这是“不受信任的 CA”。
✅ 解决:
apt install certbot python3-certbot-nginx
certbot --nginx -d example.com
比如:
example.comwww.example.com 或 IP浏览器会认为证书无效。
✅ 检查:
openssl x509 -in fullchain.pem -noout -text | grep DNS
只配置了 cert.pem,没配 fullchain.pem
❌ 错误示例:
ssl_certificate /etc/ssl/cert.pem;
✅ 正确:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
如果还能用 http:// 访问,浏览器可能显示“部分不安全”。
✅ Nginx 配置:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
页面里有:
<img src="http://...">
<script src="http://...">
浏览器会标记“连接不安全”。
✅ 解决:
https://add_header Content-Security-Policy "upgrade-insecure-requests";
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
}
fullchain.pem如果你愿意,可以把:
nginx -T 配置发出来,我可以帮你精确定位问题。