I "certificati autofirmati" non riescono, ma non l'archivio fidato

0

Sto utilizzando paho.mqtt.c per connetterti a un "Certificato autofirmato" per ottenere un Broker MQTT. Ho 3 file che uso:

- CAfile.pem (CERTIFICATE)
- PrivateKey.pem (PRIVATE KEY)
- Certifcate.pem.crt (CERTIFICATE)

Quando CAfile.pem continua l'ultimo certificato nella catena.

Quando ci si connette usando il sotto, ottengo un "Verify return code: 0 (ok)":

openssl s_client -connect 1234.iot.eu-west-1.amazonaws.com:8883 
                 -cert Certifcate.pem.crt 
                 -key PrivateKey.pem 
                 -CAfile /etc/ssl/certs/ca-certificates.crt  #!!!! 

Quando ci si connette usando il sotto, ottengo un "Verifica codice di ritorno: 20 (impossibile ottenere il certificato emittente locale)":

openssl s_client -connect 1234.iot.eu-west-1.amazonaws.com:8883 
                 -cert Certifcate.pem.crt 
                 -key PrivateKey.pem 
                 -CAfile CAfile.pem  #!!!!

Ho scoperto che il motivo per il "Verify return code: 20 ..." è che Starfield Class 2 (che si trova nel mio ca-certificates.crt) manca.

Quando concat Classe Starfield 2 al mio 'CAfile.pem' funziona.

Perché l'errore? Come posso risolverlo?

    
posta Noam M 13.12.2018 - 05:19
fonte

1 risposta

1

Sembra che CA di classe 2 di Starfield sia la CA radice per il certificato dei server. Questa CA radice deve essere inclusa nel truststore. Non è completamente chiaro cosa contenga esattamente CAfile.pem ma dalla tua descrizione di ".. continua l'ultimo certificato nella catena" presumo che sia il certificato del server e non la CA principale. Poiché il certificato del server non è affatto un certificato della CA, verrà semplicemente ignorato se fornito nel parametro -CAfile poiché questo, come suggerisce il nome, si aspetta i certificati della CA.

    
risposta data 13.12.2018 - 07:17
fonte

Leggi altre domande sui tag