ssl - 获取 SSL23_GET_SERVER_HELLO :unknown protocol

标签 ssl

这似乎是一个热门问题。我希望将我的版本与其他版本区分开来。这是我在尝试使用 -debug 选项连接到 Tomcat 服务器时看到的内容:

# openssl s_client -connect example.com:443 -debug
CONNECTED(00000003)
write to 0x694230 [0x694ef0] (187 bytes => 187 (0xBB))
[...]
read from 0x694230 [0x69a450] (7 bytes => 7 (0x7))
0000 - 15 03 03 00 02 02 28                              ......(
15633:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:610:

最佳答案

首先要注意的是响应不包含可见字符,因此我不太可能连接到未启用 SSL 的端口。我不确定我的 openssl 版本使用的是哪个 SSL 库,但查看 https://boringssl.googlesource.com/boringssl/+/2214/ssl/s23_clnt.c很有帮助,即使行号错误。 p[1]为0x03,即SSL3_VERSION_MAJOR,p[2]为0x03,即TLS1_2_VERSION_MINOR。 p[0] 是 0x15(十进制 21),这是 SSL3_RT_ALERT,这意味着 p[3] 和 p[4] 应该是 0 和 2(代码没有为它们使用符号名称),它们是。 p[5]也是0x02,也就是SSL3_AL_FATAL,看起来不太好。我猜服务器不喜欢我的初始写入。但是,这应该会给我一个不同的错误,所以我想知道 openssl 是否真的无法识别其他有效的协议(protocol)。检查版本:

# openssl version
OpenSSL 0.9.8j-fips 07 Jan 2009

是的,看起来有点旧。我想我需要找到更新的版本。

关于ssl - 获取 SSL23_GET_SERVER_HELLO :unknown protocol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101016/

相关文章:

postgresql - PostgreSQL 的 NGINX TLS 终止

ios - 为什么敏感数据显示在我的 Cordova Ionic 应用程序的 Cache.db 中?

带有 SSL 错误的 Python3 套接字编程?

linux - SSL 问题并从 https 重定向到 http

python - 在 betfair.py 上调用 SSL

ruby - 在 ruby​​ 中获取 Web 服务器证书

c# - 使用 SSL/TLS 时出现 WCF 错误

firefox - 如何判断是哪个软件在进行HTTPS扫描?

go - 对特定主机使用 TLS/SSL 客户端身份验证

SSL证书域