【发布时间】:2018-07-04 11:05:59
【问题描述】:
已尝试从 STB 客户端设备与 Linux 服务器计算机建立 SSL 连接。收到以下 SSL 错误,
error:1408F10B:lib(20):func(143):reason(267) (find reason(code) at openssl/ssl.h)
在使用 openssl 命令检查时,我得到以下信息,
CONNECTED(00000003)
write to 0x7ee98 [0x8a153] (148 bytes => 148 (0x94))
0000 - 16 03 00 00 8f 01 00 00-8b 03 00 50 40 64 2c 41 ...........P@d,A
0010 - 53 23 c1 e1 9a dd e3 40-61 b3 71 cb 38 fe ba c9 S#.....@a.q.8...
0020 - 6b d7 b4 00 0d 21 88 19-6a 7c 56 00 00 64 c0 14 k....!..j|V..d..
0030 - c0 0a 00 39 00 38 00 37-00 36 00 88 00 87 00 86 ...9.8.7.6......
0040 - 00 85 c0 0f c0 05 00 35-00 84 c0 13 c0 09 00 33 .......5.......3
0050 - 00 32 00 31 00 30 00 9a-00 99 00 98 00 97 00 45 .2.1.0.........E
0060 - 00 44 00 43 00 42 c0 0e-c0 04 00 2f 00 96 00 41 .D.C.B...../...A
0070 - 00 07 c0 11 c0 07 c0 0c-c0 02 00 05 00 04 c0 12 ................
0080 - c0 08 00 16 00 13 00 10-00 0d c0 0d c0 03 00 0a ................
0090 - 00 ff 01 ...
0094 - <SPACES/NULS>
read from 0x7ee98 [0x85c03] (5 bytes => 5 (0x5))
0000 - 48 54 54 50 2f HTTP/
write to 0x7ee98 [0x8f610] (7 bytes => 7 (0x7))
0000 - 15 03 00 00 02 02 28 ......(
3069535440:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 5 bytes and written 7 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : SSLv3
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1516869657
Timeout : 7200 (sec)
Verify return code: 0 (ok)
得到的确切错误是 3069535440:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number:s3_pkt.c:362:。
请有人帮忙解决这个问题?
【问题讨论】:
-
错误端口。 你从 Q 中省略了,但在下面的评论中说,你连接到端口 8080。8080 通常是 HTTP 而不是 HTTPS,你可以从在此服务器上为 true 的跟踪。尝试连接到 HTTPS 的端口;这可能会因您无法识别但可能是 8443 的服务器而异。但是您的 openssl 实际上正在请求 SSLv3,并且许多现代实现不再允许这样做,因为它已损坏;服务器到底是什么?
-
Server 是一台运行 Ubuntu 14.04 的 Linux 机器。我正在尝试从客户端机顶盒设备连接这台机器。对这台机器的 SSL 尝试使用的 ip 和端口是 8080。
-
Ubuntu 是一个操作系统,而不是一个网络服务器;有成千上万的网络服务器可以在 Ubuntu 上运行——前提是你需要 HTTPS 而不是其他一些 SSL/TLS 协议;你确定吗?如果您确实想要 8080 上的 HTTPS,则需要关闭当前在 8080 上执行 HTTP 的任何东西,并打开在 8080 上执行 HTTPS 的东西(可能同样的东西被修改为执行 HTTPS 而不是 HTTP)。
-
@dave_thompson_085 是的。从客户端设备,我尝试连接到监听端口 8080 的 http 服务器。如果做错了,请帮助我纠正我的问题。非常感谢。
-
如果设备正在尝试将 SSL/TLS 连接到端口 8080,这是非常不寻常的,但似乎由其错误消息指示,并且您在端口 8080 上有一个 HTTP 服务器,那么是的,您是做错事。 SSL/TLS 和 HTTP 是不同的。 鉴于您所说,对于某些基于 SSL/TLS 的协议,您需要一个端口 8080 上的服务器——可能是 HTTPS(注意 S;HTTPS 与HTTP,尽管许多网络服务器都可以做到)。至少如果您有合适的证书和密钥,您可以使用
openssl s_server -accept 8080 ...,如果设备握手正常,请查看它发送的内容。
标签: linux ssl openssl tls1.2 sslv3