AWS Client VPN に TLS ハンドシェイクエラーが表示されています。エンドポイントの証明書の有効期限が切れているかどうかを確認し、交換したいと考えています。
簡単な説明
クライアント VPN は、クライアントがクライアント VPN のエンドポイントに接続しようとするときに、証明書を使用してクライアントを認証します。証明書の有効期限が切れると、セキュアな TLS セッションはエンドポイントと合意できず、クライアントは接続を確立できなくなります。その後、クライアント VPN に TLS ハンドシェイクエラーが表示されます。このエラーを解決するには、エンドポイントを再作成せずに期限切れの証明書を置き換えます。
解決策
エンドポイント証明書の有効期限が切れていることを確認する
まず、証明書の有効期限が切れていることを確認します。AWS Certificate Manager (ACM) コンソールを開いて、現在の証明書を表示します。クライアント VPN のエンドポイントが使用する証明書の ID のうち、有効期限が切れている場合はすべて書き留めておきます。
期限切れの証明書を更新する
証明書を更新するには、以下の手順に従ってください。
-
OpenVPN easy-rsa リポジトリをローカルコンピュータに複製し、easy-rsa/easyrsa3 フォルダに移動します。
$ git clone https://github.com/OpenVPN/easy-rsa.git cd easy-rsa/easyrsa3
-
新しい PKI 環境を起動します。
./easyrsa init-pki
-
新しい認証局を構築し、すべてのプロンプトに従います。
./easyrsa build-ca nopass
-
サーバー証明書と鍵を生成します。
./easyrsa build-server-full server nopass
-
クライアント証明書と鍵を生成します。クライアント証明書とクライアント秘密鍵を書き留めておきます。
./easyrsa build-client-full client1.domain.tld nopass
-
サーバーの証明書と鍵、およびクライアントの証明書と鍵をカスタムフォルダにコピーします。
mkdir ~/custom_folder/cp pki/ca.crt ~/custom_folder/cp pki/issued/server.crt ~/custom_folder/cp pki/private/server.key ~/custom_folder/cp pki/issued/client1.domain.tld.crt ~/custom_foldercp pki/private/client1.domain.tld.key ~/custom_folder/cd ~/custom_folder/
-
新しい証明書を作成したら、AWS Certificate Manager にインポートします。この手順を完了するときにコンソールにアクセスするために使用するリージョンが、クライアント VPN エンドポイントに適していることを確認してください。
注: これらの手順を完了すると、新しい認証機関 (CA) が作成されることに注意してください。.crt ファイルで終わるファイルタイプには証明書本体が、.key ファイルには証明書の秘密鍵が、ca.crt ファイルには証明書チェーンが含まれます。
クライアント VPN が使用する証明書を変更する
新しい証明書を AWS Certificate Manager にインポートしたら、クライアント VPN エンドポイントが使用する証明書を変更できるようになります。
- Amazon Virtual Private Cloud (Amazon VPC) コンソールから、[クライアント VPN エンドポイント] を選択します。
- [アクション] を選択し、[ クライアント VPN エンドポイントの変更] を選択します。
- [認証情報] で、作成したサーバー証明書を選択します。
- [クライアント VPN エンドポイントの変更] を選択して変更を保存します。
- クライアント VPN 設定ファイルをダウンロードして、変更内容を反映させます。
- エンドポイントへの接続に成功したら、期限切れの証明書を削除します。
- また、Amazon CloudWatch の DaysToExpiry 証明書メトリクスを使用して証明書の有効期限を追跡し、TLS ハンドシェイクエラーを回避することもできます。
関連情報
相互認証