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?