Подключение к WSS через веб-сайт в Android
Мне нужно подключиться к серверу WSS, который использует самозаверяющий сертификат с устройства Android с веб-сайтом.
websocat wss://example.com
отлично работает с сертификатами, подписанными властями, но не может проверить самозаверяющие сертификаты.
Существует обходной путь использования socat в дополнение к websocat:
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, так как socat для Android не поддерживает SSL (я не уверен, существует ли реальный способ компиляции socat с поддержкой SSL для Android).
Можно ли заставить websocat работать с самозаверяющими сертификатами?
1 ответ
Уже есть websocat 1.2.0
который поддерживает -k
(--insecure
) опция, которая, как и в curl, отключает проверку сертификата.
Дополнительно я сделал static-ish openssl
исполняемые файлы для Android, которые также можно использовать в качестве метода обхода в 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