He revocado un certificado, he creado una lista de revocación de certificados (CRL) y, a continuación, he importado la CRL a AWS Client VPN. He completado estos pasos para revocar el acceso a usuarios concretos. Sin embargo, Client VPN no ha revocado a los usuarios especificados.
Breve descripción
Para revocar el acceso, debe utilizar la misma entidad de certificación (CA) que utilizó para generar el certificado de usuario. Además, debe ejecutar los siguientes comandos para revocar el certificado y generar la CRL:
$ ./easyrsa revoke revoked.learnaws.local
$ ./easyrsa gen-crl
Una vez que cumpla estos criterios, siga estos pasos para solucionar el problema.
Resolución
Nota: Si se muestran errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), compruebe si está utilizando la versión más reciente de AWS CLI.
1. Utilice AWS CLI para exportar la CRL. A continuación, guarde la CRL como archivo crl.pem. Elimine STATUS al final del resultado del comando.
$ aws ec2 export-client-vpn-client-certificate-revocation-list --client-vpn-endpoint-id cvpn-endpoint-07ff8ba3d5d3b5188 --output text --region eu-central-1
2. Cree un archivo .pem para la CA con los archivos .crt y .key:
$ openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.p12
$ openssl pkcs12 -in ca.p12 -nodes -out ca.pem
3. Cree un archivo .pem para el certificado de usuario que desee revocar:
$ 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. Enlace los archivos .pem ca y crl con el comando cat:
$ cat ca.pem crl.pem > crl_ca.pem
5. Verifique la revocación.
El resultado esperado es error 23 at 0 depth lookup:certificate revoked. Si el resultado es OK, Client VPN no ha revocado el certificado de usuario.
Ejemplo de resultado:
$ 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
Alternativa:
Compruebe el número de serie del certificado de usuario en el resultado. Si el número de serie está en la CRL, Client VPN ha revocado el certificado.
Para encontrar el número de serie del certificado de usuario, ejecute este comando:
$ openssl x509 -in revoked.learnaws.local.crt -noout -serial
Para comprobar si el número de serie está en la CRL, ejecute este comando:
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