【问题标题】:How to fix ERR_SSL_VERSION_OR_CIPHER_MISMATCH error?如何修复 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误?
【发布时间】:2021-05-10 18:08:48
【问题描述】:

如何修复 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误?

在我们的一台 CentOS 服务器中,我们在 Chrome 中遇到以下错误

A secure connection cannot be established because this site uses an unsupported protocol with Error Code - ERR_SSL_VERSION_OR_CIPHER_MISMATCH

我们尝试了以下命令 - openssl s_client -connect <<domain>>:<<port>> -tls1_2

它给出以下输出。它不提供证书链和协商密码。

$ openssl s_client -connect <<domain>>:<<port>> -tls1_2

CONNECTED(00000003)
139874418423624:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1275:SSL alert number 40
139874418423624:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:598:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1505770082
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)

我们使用命令 - # /usr/bin/openssl ciphers -v 检查了 VM 上的可用密码。此命令提供可用密码列表,其中还包括 TLS 1.2 支持的密码

我们还检查了证书。相同的证书适用于不同的服务器。

有人可以指导在这种情况下缺少什么吗?

【问题讨论】:

  • 你可以尝试使用 curl 并检查它是否成功,而不是 openssl

标签: encryption tls1.2


【解决方案1】:

当我们使用openssl 时,如果连接因alert 40 错误而终止,这意味着我们应该在命令中明确指定服务器名称,以便服务器可以返回客户端期望的正确证书。

使用-servername 参数指定您想要的确切主机名。例如:

openssl s_client -connect yourserver.domain.com:443 -servername  yourserver.domain.com

【讨论】:

    猜你喜欢
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2016-11-17
    • 2011-07-24
    • 2017-07-17
    相关资源
    最近更新 更多