connessione websocket su TLS che utilizza nopoll non riesce con SSL_ERROR_SYSCALL

0

Sto scrivendo un client di messaggistica che dovrebbe connettersi a un server tramite websocket secure (WSS). Quando il client avvia la connessione nopoll, openssl restituisce SSL_ERROR_SYSCALL.

Il server supporta anche il protocollo https-sse. Quindi, per confermare che i certificati x.509 usati sono corretti, ho provato a connettermi al server usando https-sse. Funziona come previsto.

Poiché il server utilizza gli stessi certificati per autenticare i client che si collegano su wss o https, non capisco perché la connessione wss fallirebbe con SSL_ERROR_SYSCALL quando la connessione https può funzionare con lo stesso server.

L'indirizzo IP del server e il numero di porta sono gli stessi di WSS e HTTPS. Differiscono solo nello schema. wss: //: e https: //: Il client che supporta sia wss che https è scritto in linguaggio C in quanto è destinato a essere un prodotto esistente con codice scritto in C.

    
posta Kumar 23.05.2017 - 19:07
fonte

1 risposta

0

Il processo client websocket utilizzava la libreria di nopoll che aveva bisogno dell'accesso a / dev / urandom come si chiamava random () per generare seed. Ma il processo stesso era in esecuzione in un contenitore Linux che non aveva accesso a / dev / urandom. Quindi il client non è stato in grado di generare le chiavi durante l'handshake TLS.

Il montaggio / dev / urandom sul contenitore del client ha risolto il problema.

    
risposta data 06.06.2017 - 13:33
fonte

Leggi altre domande sui tag