OpenSSL ne peut pas obtenir de certificat d'émetteur local sauf si CAfile est explicitement spécifié
Je suis en train d'essayer de se connecter à Apple Push Notification service à partir d'un serveur Ubuntu pour une application. J'ai réussi à générer le combiné .pem certificat requis par le pyAPNS fournisseur que j'utilise. Cependant, lorsque j'essaie de vérifier le certificat avec openssl verify
je reçois error 20 at 0 depth lookup:unable to get local issuer certificate
. Il fonctionne si je spécifie le certificat de l'autorité explicitement (openssl verify apns.pem -CAfile entrust_2048_ca.pem
), mais j'ai déjà installé explicitement le Confie certificat sur le système comme indiqué icien vertu de "l'Importation d'un Certificat dans le Système à l'Échelle de l'Autorité de certification de la Base de données", et comme je le comprends cette pagetout est comme il devrait l'être (le certificat est dans /usr/lib/ssl/certs et il y est un lien symbolique avec le hash).
La même chose arrive si j'essaie de me connecter à l'APN lui-même avec openssl s_client
: il semble se connecter correct si je spécifier le CAfile explicitement, mais pas autrement. PyAPNS me dit qu'il ne peut pas se connecter à l'APN serveur, et je ne peux que supposer que c'est pour la même raison.
Comment puis-je obtenir OpenSSL pour reconnaître le Confier à une autorité de certificat par défaut, sans préciser explicitement à chaque fois? Ai-je raté une étape quelque part?
source d'informationauteur antialiasis
Vous devez vous connecter pour publier un commentaire.
OpenSSL utiliser un hachage du certificat de l'Émetteur DN pour rechercher le fichier dans le répertoire par défaut où les certificats d'AC sont installés.
Voir OpenSSL
vérifier
de la documentation:Ces valeurs de hachage sera disponible à partir du DN Sujet de chaque certificat d'autorité de certification (puisque le but est de chercher un certificat d'autorité de certification avec l'objet correspondant à l'émetteur du certificat pour vérifier). Vous pouvez soit utiliser
c_rehash
comme indiqué, ou obtenir l'Objet DN hachage à l'aide deopenssl x509 -subject_hash -noout -in cacert.pem
et renommer le fichier/link en conséquence.Directe de l'émetteur du certificat pour vérifier peut-être pas une autorité de certification racine: il y a peut être un certificat d'autorité de certification intermédiaire dans la chaîne. Vous devez également vous assurer que les certificats intermédiaires sont utilisés.
En outre, il y a deux distincts de hachage formats (il y a eu un changement depuis OpenSSL version 1.0), il vaut la peine de faire un lien à l'aide de deux
-subject_hash_old
et-subject_hash
bien que OpenSSL lui-même par défaut ne doit utiliser son nouveau format.