Подключение к 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
Другие вопросы по тегам