こんにちわ!サーバーワークス日本最南端社員の久保玉井(くぼたまい)です。
WindowsやMacOSより、AWSのネットワークへ安全に接続が出来るAWS Client VPNですが、接続する際にいくつかの認証方法があります。
その中で相互証明における証明書発行手順があり、弊社ブログでもいくつかの記事を掲載しております。
- AWS CloudShellで証明書発行環境を高速セットアップ
- AWS Client VPN の導入をしてみた(相互認証)
- 【AWS Client VPN】OpenVPN easy-rsaの自己証明書の更新手順(相互認証)
発行した証明書により接続は可能になりますが、この証明書を失効させる手順を今回記載します。
なぜ失効処理が必要なのか?
自ら発行した自己証明書にてAWS Client VPNに接続が行なえますが、以下のようなケースでは失効処理が必要になります。
証明書の期限より前に接続をさせたく無い場合
たとえば異動や退職などがあり、その方が自己証明書を保有している場合にはセキュリティ的にも接続が出来ないほうが好ましいです。
またキーや証明書情報が漏洩した場合にも、失効処理を行う事で接続を拒否することが可能です。
どうやって処理するのか?
実はAWS Client VPNでは、作成したクライアントVPNエンドポイントに クライアント証明書CRLをインポートする事が可能です。
CRLとは 、Certificate Revocation Listと言い証明書の失効リストの事を指します。
証明書を作成した認証基盤で失効リストを作成しクライアントVPNエンドポイントへインポートを行えば接続が出来なくなります。
処理手順
まずは今回作業をする環境です。
イーゴリさんの記事と同じく、AWS CloudShellで行ってみます。
不足コンポーネントや発行した環境の復元は以下ブログよりご確認ください。
証明書を失効させる
当該の証明書の失効処理を行います。
./easyrsa revoke 失効させたいクライアント証明書 (./easyrsa revoke client.domain.tld)
ここで間違えて他の証明書を選定してしまうと、他の方がAWS Client VPNへ接続できなくなり困ってしまうのでご注意ください。
失効リストへ反映
失効させた証明書情報を失効リストに反映させます。(失効リストの更新)
./easyrsa gen-crl
失効リスト、CRLを更新しないとクライアントVPNエンドポイントへインポートしても失効が反映されません。失効リストへの反映もお忘れなく!
失効状況を確認する
失効が正しくできているかの確認ができます。
./easyrsa show-cert 失効させたいクライアント証明書 (./easyrsa show-cert client.domain.tld)
またインデックスの内容を確認することでも、失効状況の確認ができます。
cat pki/index.txt
(R)がついていたら失効している状態です。
AWSクライアントエンドポイントへインポートする
失効リストはcrl.pemとして保存されます。
その失効リストをAWS CLIでインポートします。
aws ec2 import-client-vpn-client-certificate-revocation-list \ --certificate-revocation-list file://crl.pem \ --client-vpn-endpoint-id クライアントVPN エンドポイントのID
AWS CloudShellからcrl.pemファイルを手動ダウンロードし、マネージメントコンソールにてインポート処理することも可能ですが、AWS CloudShellはAWS CLIコマンドが利用できますので、コマンドでインポートするほうがてっとり早いです。
接続を試みる
さて失効処理を行い失効リストをインポートしました。
その後AWS Client VPNで接続できるか確認してみます。
「接続の再確立」となり、何度接続を試みても接続できません。接続をするためには、新たに証明書の発行が必要になります。
まとめ
作業が完了後は、当該ディレクトリをZipなどで圧縮保存し別途保管すれば、CloudShellの環境が無くなっても引き続き作業も可能です。
期限切れ前に証明書の更新作業などを行うケースもあるとは思いますが、意外と失効処理をするケースもあるとは思いますので、この記事がどなたかのお役に立てれば嬉しいです。
最後までお読み頂きありがとうございました\(^o^)/
参考資料
クライアント証明書失効リスト - AWS クライアント VPN
久保玉井純(執筆記事の一覧)
アプリケーションサービス部
サーバーワークス日本最南端社員。
最近、AWS Authorized Instructor Award 2022で表彰いただきました。引き続きわかりやすいトレーニング提供できるように頑張ります!