nginx开启443浏览器访问提示:ERR_SSL_PROTOCOL_ERROR
错误常见于 Nginx 配置 SSL 证书有问题,浏览器直接拒绝建立 TLS 连接,导致 ERR_SSL_PROTOCOL_ERROR。
1. 证书/私钥是否匹配(密钥是否匹配)
- 检查
ssl_certificate和ssl_certificate_key是否对应一对。
1 | openssl x509 -noout -modulus -in your_cert.pem | openssl md5 |
两个哈希值必须一致,否则不匹配。
2. Nginx 配置是否正确
典型配置示例:
1 | server { |
注意:
ssl_certificate建议用 fullchain.pem(包含证书链),否则浏览器可能报协议错误。listen 443 ssl;必须加ssl。
3. 检查端口是否被占用
1 | ss -ltnp | grep 443 |
确认是 Nginx 在监听 443,而不是其他服务(比如 Apache)。
4. 验证证书文件权限
1 | ls -l /etc/nginx/ssl/ |
ssl_certificate_key只能被root读取(0600 或 0640),否则启动可能失败。
5. 查看 Nginx 错误日志
1 | tail -f /var/log/nginx/error.log |
如果配置有误(比如 key 不对、证书格式错误),这里能看到提示。
6. 用 openssl 手动测试
1 | openssl s_client -connect example.com:443 |
可以直接看到握手过程,是否报 handshake failure、no shared cipher 等。