Chrome中Hostinger+Let's Encrypt环境下SSL协议错误排查
可能的原因及排查方案
1. Chrome SSL缓存或站点数据冲突
Chrome会缓存SSL证书和站点相关数据,旧的无效缓存可能干扰新连接建立。
- 排查步骤:
- 打开Chrome,访问
chrome://settings/siteData - 搜索
myhostname.com,删除所有相关数据 - 强制刷新页面(Ctrl+Shift+R),重新发起请求
- 打开Chrome,访问
2. SSL协议/加密套件兼容性问题
Chrome对SSL协议和加密套件的限制比Firefox更严格,服务器配置的套件可能不被Chrome认可。
- 排查步骤:
- 用Chrome访问
https://myhostname.com,点击地址栏锁图标 → 「证书」→ 「详细信息」,查看协议和套件信息 - 修改Node.js的HTTPS服务器配置,添加Chrome兼容的协议和套件:
const options = { key: fs.readFileSync('/etc/letsencrypt/live/myhostname.com/privkey.pem', 'utf8'), cert: fs.readFileSync('/etc/letsencrypt/live/myhostname.com/cert.pem', 'utf8'), ca: fs.readFileSync('/etc/letsencrypt/live/myhostname.com/chain.pem', 'utf8'), // 添加兼容Chrome的协议和套件 minVersion: 'TLSv1.2', ciphers: 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384' }; - 重启服务器后测试
- 用Chrome访问
3. HSTS(HTTP严格传输安全)配置问题
如果域名之前设置过错误的HSTS规则,Chrome会强制使用HTTPS但可能触发协议错误。
- 排查步骤:
- 访问
chrome://net-internals/#hsts - 在「Delete domain security policies」输入
myhostname.com,点击「Delete」 - 重启Chrome后重新测试
- 访问
4. 证书链不完整或配置错误
Chrome对证书链的校验更严格,即便Firefox能正常识别,也可能出现链不完整的问题。
- 排查步骤:
- 在服务器上运行命令验证证书链完整性:
检查输出是否包含「Verify return code: 0 (ok)」,有错误则说明证书链存在问题openssl s_client -connect myhostname.com:443 -showcerts - 合并证书与中间链,修改服务器配置:
调整代码中的证书配置:cat /etc/letsencrypt/live/myhostname.com/cert.pem /etc/letsencrypt/live/myhostname.com/chain.pem > fullchain.pemcert: fs.readFileSync('/etc/letsencrypt/live/myhostname.com/fullchain.pem', 'utf8'), // 移除单独的ca配置,因为fullchain已包含完整证书链 - 重启服务器测试
- 在服务器上运行命令验证证书链完整性:
5. Chrome扩展或安全插件干扰
部分广告拦截器、安全类扩展可能拦截HTTPS请求或修改SSL连接参数。
- 排查步骤:
- 打开Chrome无痕模式(Ctrl+Shift+N),发起请求测试
- 若无痕模式正常,逐个禁用已安装扩展,定位到导致问题的插件
- 禁用该扩展或调整其设置
内容的提问来源于stack exchange,提问作者HappyCoder
相关产品推荐
相关产品推荐

