ERR_SSL_PROTOCOL_ERROR 仅针对部分用户(nodejs、express)
ERR_SSL_PROTOCOL_ERROR only for some users (nodejs, express)
只有一些(不是全部)用户在尝试访问我的快递网站时在 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] has the correct chain.
[mysite]: TLS handshake error:
error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert
internal error SSL Labs might be able to tell you what went wrong
我用谷歌搜索没有成功,有人知道问题出在哪里吗? Ty.
握手失败的一个可能原因可能是缺少中间证书,ca
tls.createSecureContext
选项。它应该在您的提供商的网站上 public。
希望对您有所帮助。
如今,当我们的服务器(例如 1&1)被安全配置时,仅支持 tls v1.2 和 tls v1.3 ..
所以你如何调试这个:
扫描您的站点 SSL Labs Test 也可以查看支持哪些密码,或者在我们的 nginx/apache 配置中查看
tail -f
服务器日志,尤其是 catchall/other_vhosts 日志文件,因为当服务器无法决定名字
尝试 更新 用户 chrome 至少支持 tls 1.2
chrome 有一些命令行开关来改变它的密码行为:
--ssl-version-max
指定最大 SSL/TLS 版本("tls1.2" 或 "tls1.3")。 ↪
--ssl-version-min
指定最低 SSL/TLS 版本("tls1"、"tls1.1"、"tls1.2" 或 "tls1.3")。 ↪
危险区域:
- 作为最后的手段,您可以尝试在您的 nginx-config(
ssl_ciphers
指令)中接受遗留密码,例如 socat 或(最后的手段)socat23 以检查您的客户支持哪个版本,
记得在生产环境中禁用 tls v1.2 以下的所有内容
最后我放弃了 1&1 并使用了 GoDaddy 的 CA 服务,问题就消失了。
只有一些(不是全部)用户在尝试访问我的快递网站时在 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] has the correct chain.
[mysite]: TLS handshake error: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error SSL Labs might be able to tell you what went wrong
我用谷歌搜索没有成功,有人知道问题出在哪里吗? Ty.
握手失败的一个可能原因可能是缺少中间证书,ca
tls.createSecureContext
选项。它应该在您的提供商的网站上 public。
希望对您有所帮助。
如今,当我们的服务器(例如 1&1)被安全配置时,仅支持 tls v1.2 和 tls v1.3 ..
所以你如何调试这个:
扫描您的站点 SSL Labs Test 也可以查看支持哪些密码,或者在我们的 nginx/apache 配置中查看
tail -f
服务器日志,尤其是 catchall/other_vhosts 日志文件,因为当服务器无法决定名字尝试 更新 用户 chrome 至少支持 tls 1.2
chrome 有一些命令行开关来改变它的密码行为:
--ssl-version-max
指定最大 SSL/TLS 版本("tls1.2" 或 "tls1.3")。 ↪
--ssl-version-min
指定最低 SSL/TLS 版本("tls1"、"tls1.1"、"tls1.2" 或 "tls1.3")。 ↪
危险区域:
- 作为最后的手段,您可以尝试在您的 nginx-config(
ssl_ciphers
指令)中接受遗留密码,例如 socat 或(最后的手段)socat23 以检查您的客户支持哪个版本,
记得在生产环境中禁用 tls v1.2 以下的所有内容
最后我放弃了 1&1 并使用了 GoDaddy 的 CA 服务,问题就消失了。