尝试访问我的快速站点时,只有部分(不是全部)用户在Chrome中收到ERR_SSL_PROTOCOL_ERROR。我没有收到此错误,因此调试起来很痛苦。
我正在使用从提供商(1&1)下载的PFX文件创建https服务器:
var options = {
pfx: fs.readFileSync('./mysite_private_key.pfx'),
passphrase: 'MYPASSPHRASE',
};
https.createServer(options, app).listen(443);
https://whatsmychaincert.com告诉我链条正确,但抱怨握手:
[mysite]具有正确的链。
[mysite]:TLS握手错误: 错误:14077438:SSL例程:SSL23_GET_SERVER_HELLO:tlsv1警报 内部错误SSL实验室可能能够告诉您出了什么问题
我用谷歌搜索没有成功,有人知道这可能是什么问题吗? Ty。
握手失败的可能原因可能是缺少中间证书,ca
的tls.createSecureContext
选项。它应该在提供者的网站上公开显示。
希望这会有所帮助。
如今,当安全配置我们的服务器(例如1&1)时,仅支持tls v1.2和tls v1.3 ..
所以您如何调试它:
[scan您的使用tls.createSecureContext
的站点也可以看到支持哪些密码,或者可以在我们的nginx / apache配置中查看
[SSL Labs Test服务器记录日志,尤其是catchall / other_vhosts日志文件,因为当服务器无法确定名称时,ssl协议错误可能会出现在站点日志和通用catchall日志中
尝试更新用户chrome至少支持tls 1.2
chrome具有一些命令行开关来更改其密码行为:
tail -f
指定最大SSL / TLS版本(“ tls1.2”或“ tls1.3”)。 ↪--ssl-version-max
指定最低SSL / TLS版本(“ tls1”,“ tls1.1”,“ tls1.2”或“ tls1.3”)。 ↪--ssl-version-min
指令)中接受旧密码,例如socat OR(非常最后的选择)ssl_ciphers
,以检查您的客户端支持哪个版本,