Pourquoi le VPN client n'a-t-il pas révoqué les utilisateurs spécifiés dans ma CRL ?

Lecture de 3 minute(s)
0

J'ai révoqué un certificat, généré une liste de révocation de certificats (CRL), puis importé cette CRL dans AWS Client VPN. J'ai suivi ces étapes pour révoquer l'accès de certains utilisateurs. Cependant, le VPN client n'a pas révoqué les utilisateurs spécifiés.

Brève description

Pour pouvoir révoquer un accès, vous devez utiliser la même autorité de certification (CA) que celle utilisée pour générer le certificat utilisateur. Vous devez également exécuter les commandes suivantes pour révoquer votre certificat et générer la liste CRL :

$ ./easyrsa revoke revoked.learnaws.local

$ ./easyrsa gen-crl

Une fois ces critères remplis, procédez comme suit pour résoudre le problème.

Résolution

Remarque : si des messages d’erreurs surviennent lors de l'exécution des commandes de l'interface de la ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente de l’interface.

1. Utilisez l'interface de la ligne de commande AWS pour exporter la CRL. Enregistrez ensuite la CRL sous forme de fichier crl.pem. Supprimez le STATUT à la fin du résultat de la commande.

$ aws ec2 export-client-vpn-client-certificate-revocation-list --client-vpn-endpoint-id cvpn-endpoint-07ff8ba3d5d3b5188 --output text --region eu-central-1

2. Créez un fichier .pem pour l'autorité de certification avec les fichiers .crt et .key :

$ openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.p12
$ openssl pkcs12 -in ca.p12 -nodes -out ca.pem

3. Créez un fichier .pem pour le certificat utilisateur que vous souhaitez révoquer : 

$ openssl pkcs12 -export -in revoked.learnaws.local.crt -inkey revoked.learnaws.local.key -out revoked.learnaws.local.p12
$ openssl pkcs12 -in revoked.learnaws.local.p12 -nodes -out revoked.learnaws.local.pem

4. Liez les fichiers .pem ca et crl à l'aide de la commande cat :

$ cat ca.pem crl.pem > crl_ca.pem

5. Vérifiez la révocation.

Le résultat attendu est : erreur 23 à une profondeur de recherche de 0 : certificat révoqué. Si le résultat est OK, le client VPN n'a pas révoqué le certificat utilisateur. 

Exemple de résultat :

$ openssl verify -crl_check -CAfile crl_ca.pem revoked.learnaws.local.pem
revoked.learnaws.local.pem: CN = revoked.learnaws.local
error 23 at 0 depth lookup:certificate revoked

-ou-

Vérifiez le résultat pour le numéro de série du certificat utilisateur. Si le numéro de série figure dans la CRL, le client VPN a bien révoqué le certificat.

Pour trouver le numéro de série du certificat utilisateur, exécutez cette commande :

$ openssl x509 -in revoked.learnaws.local.crt -noout -serial

Pour vérifier si le numéro de série figure dans la CRL, exécutez cette commande :

client cert: CN=abc.corp.xyz.com, "CertificateArn": "arn:aws:acm:us-east-1:xxxx:certificate/xxxxx-f692-4026-b26f-cfb361cf1b66", "Serial": "b5:99:e8:b9:5d:39:85:5f:8e:a9:b9:2c:10:9f:8b:c3"

$ cd /home/ec2-user/easy-rsa/easyrsa3/pki$ openssl crl -in crl.pem -text -noout | grep B599E8B95D39855F8EA9B92C109F8BC3
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois