1

我需要连接到一个 WSS 服务器,该服务器使用来自带有 websocat 的 Android 设备的自签名证书。

websocat wss://example.com与权威机构签署的证书一起工作正常,但无法验证自签名证书。

除了 websocat 之外,还有一个使用 socat 的解决方法:

websocat --binary --ws-c-uri=wss://example.com - ws-c:cmd:'socat - ssl:example.com:443,verify=1,cafile=/path/to/cert.crt'

这适用于 Debian,但不适用于 Android,因为 Android 的 socat 不支持 SSL(我不确定是否有一种可行的方法来编译 socat 并支持 Android 的 SSL)。

是否可以让 websocat 使用自签名证书?

4

1 回答 1

1

已经websocat 1.2.0有支持-k( --insecure) 选项,就像在 curl 中一样,关闭证书验证。

此外,我为 Android制作了静态openssl可执行文件,它也可以用作 websocat 1.1.0 中的解决方法:

$ websocat -b --ws-c-uri=wss://echo.websocket.org - ws-c:sh-c:'openssl s_client -quiet -connect echo.websocket.org:443'
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = *.websocket.org
verify return:1
dsaf
dsaf
12345
12345
于 2018-11-02T21:27:38.647 回答