ssl - SSL 握手显示密码 0000
问题描述
我的 SSL 握手(使用 openssl s_client -connect host:port)显示以下输出:
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1631731107
Timeout : 300 (sec)
Verify return code: 0 (ok)
它显示返回代码 0(正常)、开始时间等。这是否意味着这里建立了 SSL 会话?为什么它不显示我通常在其他 SSL 会话中看到的其他内容,例如密码、会话 ID 等?
解决方案
此输出意味着握手根本不成功。在此之前的输出中通常存在错误,如下所示:
$ openssl s_client -connect example.com:80
CONNECTED(00000003)
140501726137216:error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number:ssl_pkt.c:386:
....
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
...
Verify return code: 0 (ok)
在这个例子中,一个 TLS 连接被尝试连接到一个根本不使用 TLS 而是只使用普通 HTTP 的服务器(因为我已经连接到普通 HTTP 端口)。有一个明显的错误显示某种 TLS 问题,在这种情况下,这是由于试图将纯 HTTP 响应解释为 TLS 而引起的。
推荐阅读
- python - 合并不同长度的数据框
- spring - size 和 notnull 弹簧注释不能正常工作
- javascript - 无法使用 apollo-server-micro 和 NextJS 上传 1MB 以上的文件
- graphql - Apollo 可以从缓存中读取部分片段吗?
- cucumber - 在同一场景中的不同步骤文件之间共享数据
- networking - Separating messages in Protocol Buffers
- firebase - 从 firebase 数据库中获取所有集合名称
- git - 无法从远程仓库 git pull 但可以在 GitHub Actions 中进行 git clone
- sql - 选择行中不同列值的级别以创建层次结构
- javascript - 更新 CSS:之前通过 jQuery?