証明書を取り消し、証明書失効リスト (CRL) を生成し、CRL を AWS Client VPN にインポートしました。これらの手順を実行して、特定のユーザーに対するアクセスを取り消しました。ただし、Client VPN は指定したユーザーを取り消しませんでした。
簡単な説明
アクセスを取り消すには、ユーザー証明書の生成に使用したのと同じ認証機関 (CA) を使用する必要があります。また、次のコマンドを実行して証明書を取り消し、CRL を生成する必要があります:
$ ./easyrsa revoke revoked.learnaws.local
$ ./easyrsa gen-crl
これらの基準を満たした後、次の手順を実行してトラブルシューティングを実行します。
解決策
**注意:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーを受け取った場合、最新の AWS CLI バージョンを使用していることを確認してください。
1.AWS CLI を使用して CRL をエクスポートします。次に、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.取り消したいユーザー証明書の .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.取り消しを確認してください。
期待される出力は、error 23 at 0 depth lookup:certificate revoked です。出力に 問題がなければ、Client VPN はユーザー証明書を取り消さなかったことになります。
出力例:
$ 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
-or-
出力で、ユーザー証明書のシリアル番号を確認してください。シリアル番号が CRL に含まれている場合、クライアント VPN が証明書を取り消したことになります。
ユーザー証明書のシリアル番号を確認するには、次のコマンドを実行します:
$ openssl x509 -in revoked.learnaws.local.crt -noout -serial
シリアル番号が CRL に含まれているかどうかを確認するには、次のコマンドを実行します:
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