为什么我的 CRL 中指定的用户没有被 Client VPN 撤销?

上次更新日期:2021 年 1 月 27 日

我撤销了一个证书,生成了证书撤销列表 (CRL),然后将 CRL 导入到 AWS Client VPN 中。我完成了撤销特定用户访问权的这些步骤。但是,指定用户没有被 Client VPN 撤销。如何修复此问题?

简短描述

确认您已使用以下命令撤销证书并生成 CRL:

$ ./easyrsa revoke revoked.learnaws.local
$ ./easyrsa gen-crl

然后,完成以下步骤以继续进行问题排查。

解决方法

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您运行的是最新版本的 AWS CLI

1.    使用 AWS CLI 导出 CRL,然后将其另存为“crl.pem”文件。请务必删除命令输出结尾处的 STATUS。

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

2.    使用 .crt 和 .key 文件为证书颁发机构 (CA) 创建 PEM 文件:

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

3.    为必须使用 .crt 和 .key 文件撤销的证书创建 PEM 文件:

$ 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.    使用 cat 命令连接“ca”和“crl”PEM 文件:

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

5.    验证撤销。

如果输出为“OK”(确定),则不会按预期撤销。预期的输出为“error 23 at 0 depth lookup:certificate revoked”(0 深度查找时发生错误 23:证书被撤销)。

$ 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

-或者-

找到证书的序列号,然后在输出中查找该编号。如果存在序列号,则证书将被撤销。

示例:

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

这篇文章对您有帮助吗?


您是否需要账单或技术支持?