Gestion des listes de révocation dans Apache
Ancienne méthode : les CRLs
Si vous faites de l'authentification par certificats clients, il faut vous assurer de la validité des certificats, et donc consulter la liste de révocation de chaque certificat accepté.Si vous avez suivi nos conseils, vous avez déjà identifié le ou les émetteur (s) acceptable(s) avec l'instruction SSLCACertificateFile ou SSLCACertificatePath. Pour se faire, vous avez parcouru la chaine de certification, en partant du certificat émetteur de vos certificats (Certificats intermédiaires).
Vous allez reparcourir cette chaine en notant à chaque étape l'url de la CRL de chaque certificat. Par exemple si vous utilisez notre offre TBS X509 PKI PME votre certificat émetteur est TBS X509 CA persona 3. Vous obtiendrez donc la liste suivante:
http://crl.sectigo.com/TBSX509CAPersona3RSA.crl http://crl.usertrust.com/USERTrustRSACertificationAuthority.crlIl va donc falloir mettre ces CRL à disposition d'Apache pour qu'il les vérifie. Pour se faire on va travailler dans le répertoire standard d'apache, le plus souvent /etc/httpd/conf/ssl.crl/
On utilise alors l'instruction Apache:
SSLCARevocationPath conf/ssl.crl/
Ces CRL doivent être tenues à jour, donc au lieu de faire la mise à jour à la main, on va la mettre dans un CRON lancé toutes les heures. Il va récupérer toutes les CRLs de la chaine (avec curl) et les convertir au format PEM (avec openssl). Ensuite il va créer les liens hash (avec make en utilisant le Makefile fourni par Apache).
Voici notre fichier /etc/cron.hourly/maj-crl-httpd applicable pour notre exemple:
cd /etc/httpd/conf/ssl.crl # CHAINE TBS X509 persona pour PKI PME curl -s http://crl.sectigo.com/TBSX509CAPersona3RSA.crl | openssl crl -inform DER -out TBSX509CApersona3RSA.crl curl -s http://crl.usertrust.com/USERTrustRSACertificationAuthority.crl | openssl crl -inform DER -out USERTrustRSACertificationAuthority.crl make > /dev/nullLe résultat est le suivant:
$ ll /etc/httpd/conf/ssl.crl -rw-r--r-- 1 root root 320 Aug 24 1999 README.CRL -rw-r--r-- 1 root root 1568 Aug 24 1999 Makefile -rw-r--r-- 1 root root 841 Feb 11 14:10 TBSX509CApersona3RSA.crl -rw-r--r-- 1 root root 857 Feb 11 14:10 USERTrustRSACertificationAuthority.crl lrwxrwxrwx 1 root root 46 Feb 11 14:10 9ec3a561.r0 -> USERTrustRSACertificationAuthority.crl lrwxrwxrwx 1 root root 20 Feb 11 14:10 4840af4a.r0 -> TTBSX509CApersona3RSA.crlIl ne nous reste plus qu'à indiquer à Apache de consulter ces CRL avec l'instruction
SSLCARevocationPath conf/ssl.crl/
Nouvelle méthode : OCSP
Cette méthode permet de vérifier la validité du certificat en temps réel en interrogeant directement l'autorité de certification. Pour activer ce protocole, voici les directives à mettre en place dans votre fichier de configuration Apache :
SSLVerifyClient require SSLOCSPEnable on
Également, il faut activer l'OCSP Stapling pour fournir directement une attestation de validité à la connexion (plus d'informations). L'OCSP Stapling est supporté à partir de la version 2.4+ d'Apache. Voici un exemple de configuration de l'OCSP Stapling :
SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling_cache(128000)"