翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
相互認証
相互認証では、クライアント VPN は証明書を使用してクライアントとサーバー間の認証を実行します。証明書とは、認証機関 (CA) によって発行された識別用デジタル形式です。クライアントがクライアント VPN エンドポイントに接続を試みると、サーバーはクライアント証明書を使用してクライアントを認証します。サーバー証明書とキー、および少なくとも 1 つのクライアント証明書とキーを作成する必要があります。
サーバー証明書を AWS Certificate Manager (ACM) にアップロードし、クライアント VPN エンドポイントを作成するときに指定する必要があります。サーバー証明書を ACM にアップロードするときは、認証局 (CA) も指定します。クライアント証明書を ACM にアップロードする必要があるのは、クライアント証明書の CA がサーバー証明書の CA と異なる場合だけです。ACM の詳細については、AWS Certificate Manager ユーザーガイドを参照してください。
クライアント VPN エンドポイントに接続するクライアントごとに、個別のクライアント証明書とキーを作成できます。これにより、ユーザーが組織を離れた場合に、特定のクライアント証明書を取り消すことができます。この場合、クライアント VPN エンドポイントを作成するときに、クライアント証明書がサーバー証明書と同じ CA によって発行されていれば、クライアント証明書のサーバー証明書 ARN を指定できます。
クライアント VPN エンドポイントは、1024 ビットおよび 2048 ビットの RSA キーサイズのみサポートしています。また、クライアント証明書の [Subject (件名)] フィールドに CN 属性が含まれている必要があります。
クライアント VPN サービスで使用している証明書を、ACM の自動ローテーション、新しい証明書の手動インポート、または IAM Identity Center へのメタデータの更新により更新すると、クライアント VPN サービスはクライアント VPN エンドポイントをより新しい証明書で自動更新します。これは、最長で 24 時間かかることがある自動プロセスです。
- Linux/macOS
-
次の手順では、OpenVPN easy-rsa を使用してサーバーとクライアントの証明書とキーを生成してから、そのサーバーの証明書とキーを ACM にアップロードします。詳細については、「Easy-RSA 3 Quickstart README」を参照してください。
サーバーとクライアントの証明書とキーを生成し、それらを ACM にアップロードするには
-
OpenVPN easy-rsa リポジトリのクローンをローカルコンピュータに作成して、easy-rsa/easyrsa3
フォルダに移動します。
$
git clone https://github.com/OpenVPN/easy-rsa.git
$
cd easy-rsa/easyrsa3
-
新しい PKI 環境を初期化します。
$
./easyrsa init-pki
-
新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。
$
./easyrsa build-ca nopass
-
サーバー証明書とキーを生成します。
$
./easyrsa --san=DNS:server build-server-full server nopass
-
クライアント証明書とキーを生成します。
クライアント証明書とクライアントプライベートキーは、クライアントを設定するときに必要になるため、必ず保存してください。
$
./easyrsa build-client-full client1.domain.tld nopass
必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。
-
サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。
証明書とキーをコピーする前に、mkdir
コマンドを使用してカスタムフォルダを作成します。次の例では、ホームディレクトリにカスタムフォルダを作成します。
$
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_folder
$
cp pki/private/client1.domain.tld.key ~/custom_folder
/
$
cd ~/custom_folder
/
-
サーバー証明書とキー、およびクライアント証明書とキーを ACM にアップロードします。必ずクライアント VPN エンドポイントを作成する予定のリージョンと同じリージョンにアップロードしてください。以下のコマンドは、 AWS CLI
を使用して証明書をアップロードします。代わりに ACM コンソールを使用して証明書をアップロードするには、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。
$
aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
$
aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt
クライアント証明書を ACM にアップロードする必要はありません。サーバー証明書とクライアント証明書が同じ認証機関 (CA) によって発行されている場合、Client VPN エンドポイントを作成するときに、サーバーとクライアントの両方に対してサーバー証明書 ARN を使用することができます。上のステップで、同じ CA を使用して両方の証明書を作成しています。ただし、完全性を保証するために、クライアント証明書をアップロードするステップが含まれています。
- Windows
-
次の手順では、Easy-RSA 3.x ソフトウェアをインストールし、それを使用してサーバーとクライアントの証明書およびキーを生成します。
サーバーとクライアントの証明書とキーを生成し、それらを ACM にアップロードするには
-
EasyRSA リリースページを開き、お使いの Windows のバージョン用の ZIP ファイルをダウンロードして抽出します。
-
コマンドプロンプトを開き、EasyRSA-3.x
フォルダが抽出された場所に移動します。
次のコマンドを実行して、EasyRSA 3 シェルを開きます。
C:\Program Files\EasyRSA-3.x>
.\EasyRSA-Start.bat
-
新しい PKI 環境を初期化します。
#
./easyrsa init-pki
-
新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。
#
./easyrsa build-ca nopass
-
サーバー証明書とキーを生成します。
#
./easyrsa --san=DNS:server build-server-full server nopass
-
クライアント証明書とキーを生成します。
#
./easyrsa build-client-full client1.domain.tld nopass
必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。
-
EasyRSA 3 シェルを終了します。
#
exit
-
サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。
証明書とキーをコピーする前に、mkdir
コマンドを使用してカスタムフォルダを作成します。以下の例では、C:\ ドライブにカスタムフォルダを作成します。
C:\Program Files\EasyRSA-3.x>
mkdir C:\custom_folder
C:\Program Files\EasyRSA-3.x>
copy pki\ca.crt C:\custom_folder
C:\Program Files\EasyRSA-3.x>
copy pki\issued\server.crt C:\custom_folder
C:\Program Files\EasyRSA-3.x>
copy pki\private\server.key C:\custom_folder
C:\Program Files\EasyRSA-3.x>
copy pki\issued\client1.domain.tld.crt C:\custom_folder
C:\Program Files\EasyRSA-3.x>
copy pki\private\client1.domain.tld.key C:\custom_folder
C:\Program Files\EasyRSA-3.x>
cd C:\custom_folder
-
サーバー証明書とキー、およびクライアント証明書とキーを ACM にアップロードします。必ずクライアント VPN エンドポイントを作成する予定のリージョンと同じリージョンにアップロードしてください。次のコマンドは AWS CLI 、 を使用して証明書をアップロードします。代わりに ACM コンソールを使用して証明書をアップロードするには、AWS Certificate Manager ユーザーガイドの「証明書のインポート」を参照してください。
aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt
クライアント証明書を ACM にアップロードする必要はありません。サーバー証明書とクライアント証明書が同じ認証機関 (CA) によって発行されている場合、Client VPN エンドポイントを作成するときに、サーバーとクライアントの両方に対してサーバー証明書 ARN を使用することができます。上のステップで、同じ CA を使用して両方の証明書を作成しています。ただし、完全性を保証するために、クライアント証明書をアップロードするステップが含まれています。
サーバー証明書の更新
有効期限が切れたサーバー証明書を更新して再インポートできます。使用している OpenVPN easy-rsa のバージョンに応じて、手順は異なります。詳細については、「Easy-RSA 3 証明書の更新と取り消しのドキュメント」を参照してください。
サーバー証明書の更新
-
次のいずれかを実行します。
-
Easy-RSA バージョン 3.1.x
-
証明書更新コマンドを実行します。
$
./easyrsa renew server nopass
-
Easy-RSA バージョン 3.2.x
-
期限切れコマンドを実行します。
$
./easyrsa expire server
-
新しい証明書に署名します。
$
./easyrsa sign-req server server
-
カスタムフォルダを作成し、そのフォルダに新しいファイルをコピーして、フォルダに移動します。
$
mkdir ~/custom_folder2
$
cp pki/ca.crt ~/custom_folder2
/
$
cp pki/issued/server.crt ~/custom_folder2
/
$
cp pki/private/server.key ~/custom_folder2
/
$
cd ~/custom_folder2
/
-
新しいファイルを ACM にインポートします。必ずクライアント VPN エンドポイントと同じリージョンにインポートしてください。
$
aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt