相互認証 - AWS クライアント VPN

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

相互認証

相互認証では、クライアント 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 にアップロードするには
  1. OpenVPN easy-rsa リポジトリのクローンをローカルコンピュータに作成して、easy-rsa/easyrsa3 フォルダに移動します。

    $ git clone https://github.com/OpenVPN/easy-rsa.git
    $ cd easy-rsa/easyrsa3
  2. 新しい PKI 環境を初期化します。

    $ ./easyrsa init-pki
  3. 新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。

    $ ./easyrsa build-ca nopass
  4. サーバー証明書とキーを生成します。

    $ ./easyrsa --san=DNS:server build-server-full server nopass
  5. クライアント証明書とキーを生成します。

    クライアント証明書とクライアントプライベートキーは、クライアントを設定するときに必要になるため、必ず保存してください。

    $ ./easyrsa build-client-full client1.domain.tld nopass

    必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。

  6. サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。

    証明書とキーをコピーする前に、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/
  7. サーバー証明書とキー、およびクライアント証明書とキーを 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 にアップロードするには
  1. EasyRSA リリースページを開き、お使いの Windows のバージョン用の ZIP ファイルをダウンロードして抽出します。

  2. コマンドプロンプトを開き、EasyRSA-3.x フォルダが抽出された場所に移動します。

  3. 次のコマンドを実行して、EasyRSA 3 シェルを開きます。

    C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
  4. 新しい PKI 環境を初期化します。

    # ./easyrsa init-pki
  5. 新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。

    # ./easyrsa build-ca nopass
  6. サーバー証明書とキーを生成します。

    # ./easyrsa --san=DNS:server build-server-full server nopass
  7. クライアント証明書とキーを生成します。

    # ./easyrsa build-client-full client1.domain.tld nopass

    必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。

  8. EasyRSA 3 シェルを終了します。

    # exit
  9. サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。

    証明書とキーをコピーする前に、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
  10. サーバー証明書とキー、およびクライアント証明書とキーを 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 証明書の更新と取り消しのドキュメント」を参照してください。

サーバー証明書の更新
  1. 次のいずれかを実行します。

    • Easy-RSA バージョン 3.1.x

      1. 証明書更新コマンドを実行します。

        $ ./easyrsa renew server nopass
    • Easy-RSA バージョン 3.2.x

      1. 期限切れコマンドを実行します。

        $ ./easyrsa expire server
      2. 新しい証明書に署名します。

        $ ./easyrsa sign-req server server
  2. カスタムフォルダを作成し、そのフォルダに新しいファイルをコピーして、フォルダに移動します。

    $ 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/
  3. 新しいファイルを ACM にインポートします。必ずクライアント VPN エンドポイントと同じリージョンにインポートしてください。

    $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt