Comment vérifier un certificat X509 en C
J'ai un certificat X509 format. ce un des paramètres d'entrée d'une fonction.
Ce que je voudrais faire est de vérifier la validité du certificat.
Comment peut-il être fait?
X509_verify_cert();
J'ai trouvé cette fonction, mais cela ne veut pas accepter une X509* certificat, il accepte X509_store et je n'ai qu'un X509.
Merci
en ce qui concerne meilleur.
Vous pouvez envisager de réduire le plateforme sur laquelle vous tentez d'accomplir cela, mais même avec ça c'est peut-être trop nébuleux pour ce Q&Un forum.
Le nom de la fonction est trompeur, il ne prend pas pleinement en mesure de vérifier la validité du certificat, vous devez également vérifier si le nom d'hôte du match, n'oubliez pas de le faire. Il y a une fonction pour cela depuis OpenSSL 1.0.2: openssl.org/docs/manmaster/crypto/X509_check_email.html
Le nom de la fonction est trompeur, il ne prend pas pleinement en mesure de vérifier la validité du certificat, vous devez également vérifier si le nom d'hôte du match, n'oubliez pas de le faire. Il y a une fonction pour cela depuis OpenSSL 1.0.2: openssl.org/docs/manmaster/crypto/X509_check_email.html
OriginalL'auteur mmm | 2013-04-05
Vous devez vous connecter pour publier un commentaire.
Consultez la documentation ici.
Vous avez besoin pour créer un magasin de certificats à l'aide de X509_STORE_CTX_new.
Puis ajouter un certificat de chaîne à l'aide de X509_STORE_CTX_set_chain. Ajouter le certificat racine de confiance à l'aide de X509_STORE_CTX_trusted_stack.
Enfin ajouter un certificat à être vérifié à l'aide de X509_STORE_CTX_set_cert.
Après l'appel X509_verify_cert.
J'espère que cela va vous aider à démarrer sur cette.
OriginalL'auteur doptimusprime
Je suis ici juste pour poster ma réponse que j'ai trouvé avec les commentaires ci-dessus.
Je n'avais pas de certificat de la chaîne, de sorte que dans le travail que je fais, je n'ai qu'un certificat généré par moi par programmation. Je voulais vérifier la validité de cela, j'ai donc créé la fonction suivante, qui vérifie le certificat contre lui-même dans d'autres pour en vérifier la validité.
Espère que cela aide quelqu'un 🙂
OriginalL'auteur mmm
Pour vérifier un certificat de signature, vous avez besoin de la clé publique d'un certificat de l'émetteur. Cet émetteur du certificat de signature est vérifiée avec un autre certificat d'émission (ou de certification racine de confiance). Ainsi, si un certificat de signature vérifie tout le chemin jusqu'à une chaîne à une racine de confiance, alors que le certificat est considéré comme approuvé.
Des certificats auto-signés signatures sont vérifiées à l'aide de leur propre clé publique, comme dans l'exemple ci-dessous:
à partir de: http://www.zedwood.com/article/openssl-c-verify-self-signed-certificate-signature
OriginalL'auteur velcrow