[ERR_SSL_PROTOCOL_ERROR仅对某些用户(nodejs,快速)

问题描述 投票:4回答:2

尝试访问我的快速站点时,只有部分(不是全部)用户在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。

node.js express ssl https tls1.2
2个回答
0
投票

握手失败的可能原因可能是缺少中间证书,catls.createSecureContext选项。它应该在提供者的网站上公开显示。

希望这会有所帮助。


0
投票

如今,当安全配置我们的服务器(例如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”)。 ↪

危险区域:

  • 作为最后的选择,您可以尝试在您的nginx-config(--ssl-version-min指令)中接受旧密码,例如socat OR(非常最后的选择)ssl_ciphers,以检查您的客户端支持哪个版本,

请记住在生产环境中禁用tls v1.2以下的所有内容

© www.soinside.com 2019 - 2024. All rights reserved.