Test di TLS con openssl

2

Sto risolvendo i problemi con una connessione TLS e usando openssl per farlo. Non riesco a ottenere il computer ARM (w / Debian8) per connettersi al mio server in GCP (mqtt: 8883 per la precisione). Ho generato certificati autofirmati sul server e li ho installati sul computer ARM, ma non si collegherà, chiaramente a causa di un problema con il certificato:

write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes

Su una macchina Windows installo certificati e openssl si connette (openssl da MinGW / msys) e anche la mia VM Debian 8 su quella macchina Windows. Quindi sono sicuro che il server sia configurato correttamente e ottengo il concetto di installare i certificati. (stranamente, quando cancello i file del certificato che ho aggiunto, funziona ANCORA ... deve essere un po 'di cache, vorrei sapere per cancellare quello)

Sulla macchina ARM che non funziona, ho provato a specificare manualmente il percorso (-CApath) o il file (-CAfile).

Come posso verificare quali certificati sta provando openssl? Sembra nelle sottocartelle?

Potrebbe essere perché i certificati sono autofirmati? (perché dovrebbe funzionare anche sulle altre macchine?)

Ulteriori informazioni: ho provato la verifica di openssl sui certificati sulla macchina ARM (autofirmato e sul certificato del server):

:/etc/ssl# openssl verify ca_certificates/ca.crt
ca_certificates/ca.crt: CN = An MQTT broker, O = OwnTracks.org, OU = generate-CA, emailAddress = [email protected]
error 18 at 0 depth lookup:self signed certificate
OK

:/etc/ssl# openssl verify ca_certificates/server.crt
ca_certificates/server.crt: CN = ########.com, O = OwnTracks.org, OU = generate-CA, emailAddress = [email protected]
error 20 at 0 depth lookup:unable to get local issuer certificate
    
posta Michael 25.04.2017 - 17:52
fonte

1 risposta

3

clearly due to a certificate issue:

write:errno=104
...
SSL handshake has read 0 bytes and written 0 bytes

Questo non è sicuramente un problema di convalida dei certificati. Come puoi vedere, ha inviato 0 byte e ottenuto 0 byte. Ciò significa che l'handshake SSL non è stato nemmeno avviato e quindi il client non avrebbe potuto ricevere alcun certificato e quindi non può essere un problema con la convalida del certificato.

Infatti, errno 104 è ECONNRESET. Ciò significa che il server ha chiuso la connessione, forse a causa di problemi con l'installazione o che il server non era nemmeno avviato o che vi è un firewall tra l'accesso di blocco del client e del server. Dato che ECONNRESET si verifica prima di qualsiasi dato inviato, suggerirei che l'handshake TCP è già fallito, perché il server non è stato avviato o un firewall.

    
risposta data 25.04.2017 - 18:16
fonte

Leggi altre domande sui tag