SSL_CTX_load_verify_locations(3) Définir l'emplacement par défaut des

SYNOPSIS


#include <openssl/ssl.h>
int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
const char *CApath);

DESCRIPTION

SSL_CTX_load_verify_locations() précise l'emplacement pour ctx où les certificats d'autorité, aux fins de vérifications, sont situés. Les certificats disponibles par CAfile et CApath sont considérés de confiance.

NOTES

Si CAfile n'est pas NULL, il pointe vers un fichier de certificats d'autorité de certification au format PEM. Le fichier peut contenir plusieurs certificats d'autorité de certification identifiés par des séquences

 -----BEGIN CERTIFICATE-----
 ... (CA certificate codé en base64) ...
 -----END CERTIFICATE-----

Avant, entre et après les certificats, il peut y avoir un texte qui peut, par exemple, décrire les certificats.

CAfile est traité lors de l'exécution de la fonction SSL_CTX_load_verify_locations()

Si CApath n'est pas NULL, il pointe vers un répertoire contenant des certificats d'autorité de certification au format PEM. Chaque fichier contient un certificat d'autorité de certification. La recherche de ces fichiers s'effectue par la valeur de hachage de nom du sujet de l'autorité de certification, qui doit donc être disponible. Si plusieurs certificats d'autorité de certification ont la même valeur de hachage de nom, leur extension peut être différente (par exemple 9d66eef0.0, 9d66eef0.1, etc.). La recherche est faite dans l'ordre des numéros d'extension, indépendamment des autres propriétés des certificats. Utilisez l'utilitaire c_rehash pour créer les liens nécessaires.

Les certificats dans CApath ne sont consultés que lorsqu'il le faut, par exemple lors de la construction d'une chaîne de certificats ou lorsque l'on vérifie effectivement le certificat d'un interlocuteur.

Quand on recherche des certificats d'autorité de certification, la bibliothèque OpenSSL cherchera les certificats d’abord dans CAfile puis dans CApath. La correspondance du certificat est établie sur la base du nom du sujet, de la clef d’identification (si elle existe) et du numéro de série du certificat à vérifier. Si ces données ne correspondent pas, le certificat suivant est testé. Si un premier certificat dont les paramètres correspondent est trouvé, le processus de vérification est exécuté et aucun autre certificat avec les mêmes paramètres ne sera recherché en cas d'échec.

En mode serveur, quand un certificat client est demandé, le serveur doit envoyer la liste des autorités de certification dont il accepte les certificats. Cette liste n'est pas déterminée par le contenu de CAfile ou CApath et doit être être configurée avec la famille de fonctions SSL_CTX_set_client_CA_list(3).

Lors de la construction de sa chaîne de certificats, un client ou serveur OpenSSL essaiera de combler les certificats manquants à partir de CAfile ou de CApath, si la chaîne de certificats n'est pas précisée (voir SSL_CTX_add_extra_chain_cert(3), SSL_CTX_use_certificate(3).

AVERTISSEMENTS

Si plusieurs certificats d'autorité de certification correspondant au nom, à la clef d’identification et au numéro de série sont disponibles, seul le premier sera examiné. Cela peut entraîner des résultats inattendus si le même certificat d'autorité de certification est disponible avec plusieurs dates d'expiration différentes. Si une erreur de vérification « certificate expired » survient, aucun autre certificat ne sera recherché. Assurez-vous de ne pas avoir de certificats expirés mêlés à des certificats valides.

EXEMPLES

Générer un fichier de certificat d'autorité de certification avec un texte descriptif à partir des certificats d'autorité de certification ca1.pem ca2.pem ca3.pem :

 #!/bin/sh
 rm CAfile.pem
 for i in ca1.pem ca2.pem ca3.pem ; do
   openssl x509 -in $i -text >> CAfile.pem
 done

Préparer le répertoire /quelque/part/certificats contenant plusieurs certificats d'autorité de certification à définir comme CApath :

 cd /quelque/part/certificats
 c_rehash .

VALEURS DE RETOUR

Les valeurs suivantes peuvent être renvoyées :
0
L'opération a échoué parce que CAfile et CApath sont NULL ou le traitement d'un des emplacements spécifié a échoué. Vérifiez la pile d'erreur pour découvrir la raison.
1
L'opération a réussi.

TRADUCTION

La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.