

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 中的相互身分驗證 AWS Client VPN
<a name="mutual"></a>

透過交互身分驗證，Client VPN 使用憑證在用戶端和伺服器之間執行身分驗證。憑證為憑證授權機構 (CA) 發出的數位形式身分證明。當用戶端嘗試連線到 Client VPN 端點時，伺服器會使用用戶端憑證來對用戶端進行身分驗證。您必須建立伺服器憑證和金鑰，以及至少一個用戶端憑證和金鑰。

您必須將伺服器憑證上傳至 AWS Certificate Manager (ACM)，並在建立 Client VPN 端點時指定它。將伺服器憑證上傳至 ACM 時，您也可以指定憑證授權機構 (CA)。只有當用戶端憑證的 CA 和伺服器憑證的 CA 不同時，您才需要將用戶端憑證上傳到 ACM。如需 ACM 的詳細資訊，請參閱《[AWS Certificate Manager ACM 使用者指南](https://docs.aws.amazon.com/acm/latest/userguide/)》。

您可以為將連線至 Client VPN 端點的每個用戶端建立個別的用戶端憑證和金鑰。這可讓您在使用者離開您的組織時撤銷特定的用戶端憑證。在這種情況下，當您建立 Client VPN 端點時，您可以為用戶端憑證指定伺服器憑證 ARN，前提是用戶端憑證是由與伺服器憑證相同的 CA 所發行。

AWS Client VPN 中使用的憑證必須遵循 [RFC 5280：網際網路 X.509 公有金鑰基礎設施憑證和憑證撤銷清單 (CRL) 設定檔](https://datatracker.ietf.org/doc/html/rfc5280)，包括備註第 4.2 節中指定的憑證延伸。

**注意**  
Client VPN 端點僅支援 1024 位元和 2048 位元 RSA 金鑰大小。此外，用戶端憑證必須在「主旨」欄位中具有 CN 屬性。  
更新與 Client VPN 服務搭配使用的憑證時，無論是透過 ACM 自動輪換、手動匯入新憑證，還是中繼資料更新至 IAM Identity Center，Client VPN 服務都會使用較新的憑證自動更新theClient VPN 端點。這是一個自動化程序，最多可能需要 5 小時。

**Topics**
+ [啟用交互身分驗證](client-auth-mutual-enable.md)
+ [更新您的伺服器憑證](mutual-renew.md)

# 啟用 的交互身分驗證 AWS Client VPN
<a name="client-auth-mutual-enable"></a>

您可以在 Linux/MacOS 或 Windows 的 Client VPN 中啟用交互身分驗證。

------
#### [ Linux/macOS ]

下列程序使用 OpenVPN easy-rsa 產生伺服器和用戶端憑證及金鑰，然後將伺服器憑證和金鑰上傳到 ACM。如需詳細資訊，請參閱 [Easy-RSA 3 Quickstart README](https://github.com/OpenVPN/easy-rsa/blob/v3.0.6/README.quickstart.md)。

**產生伺服器和用戶端憑證及金鑰並上傳到 ACM**

1. 將 OpenVPN easy-rsa 儲存庫複製到本機電腦並導覽至 `easy-rsa/easyrsa3` 資料夾。

   ```
   $ git clone https://github.com/OpenVPN/easy-rsa.git
   ```

   ```
   $ cd easy-rsa/easyrsa3
   ```

1. 初始化新的 PKI 環境。

   ```
   $ ./easyrsa init-pki
   ```

1. 若要建置新的憑證授權機構 (CA)，請執行此命令並依照提示執行。

   ```
   $ ./easyrsa build-ca nopass
   ```

1. 產生伺服器憑證和金鑰。

   ```
   $ ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. 產生用戶端憑證和金鑰。

   務必儲存用戶端憑證和用戶端私有金鑰，因為您在設定用戶端時需要它們。

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

   您可以選擇性地為每個需要用戶端憑證和金鑰的用戶端 (終端使用者) 重複此步驟。

1. 將伺服器憑證和金鑰及用戶端憑證和金鑰複製到自訂資料夾，然後導覽到自訂資料夾。

   複製憑證和金鑰之前，請使用 `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/
   ```

1. 將伺服器憑證和金鑰，以及用戶端憑證和金鑰上傳至 ACM。請務必在與您想要建立 Client VPN 端點的相同區域中，將其上傳。下列命令使用 AWS CLI 上傳憑證。若要改為使用 ACM 主控台上傳憑證，請參閱 *《AWS Certificate Manager 使用者指南》* 中的[匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)。

   ```
   $ 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 版本](https://github.com/OpenVPN/easy-rsa/releases)頁面，下載並擷取適用於您 Windows 版本的 ZIP 檔案。

1. 開啟命令提示，然後導覽至 `EasyRSA-3.x` 資料夾被擷取到的位置。

1. 執行下列命令以開啟 EasyRAS 3 殼層。

   ```
   C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
   ```

1. 初始化新的 PKI 環境。

   ```
   # ./easyrsa init-pki
   ```

1. 若要建置新的憑證授權機構 (CA)，請執行此命令並依照提示執行。

   ```
   # ./easyrsa build-ca nopass
   ```

1. 產生伺服器憑證和金鑰。

   ```
   # ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. 產生用戶端憑證和金鑰。

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

   您可以選擇性地為每個需要用戶端憑證和金鑰的用戶端 (終端使用者) 重複此步驟。

1. 退出 EasyRSA 3 shell。

   ```
   # exit
   ```

1. 將伺服器憑證和金鑰及用戶端憑證和金鑰複製到自訂資料夾，然後導覽到自訂資料夾。

   複製憑證和金鑰之前，請使用 `mkdir` 命令建立自訂資料夾。下列範例會在您的 C:\$1 磁碟機中建立自訂資料夾。

   ```
   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
   ```

1. 將伺服器憑證和金鑰，以及用戶端憑證和金鑰上傳至 ACM。請務必在與您想要建立 Client VPN 端點的相同區域中，將其上傳。下列命令使用 AWS CLI 上傳憑證。若要改為使用 ACM 主控台上傳憑證，請參閱 *《AWS Certificate Manager 使用者指南》* 中的[匯入憑證](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)。

   ```
   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 來建立這兩個憑證。然而，系統為了完整性，會包含上傳用戶端憑證的步驟。

------

# 為 續約您的伺服器憑證 AWS Client VPN
<a name="mutual-renew"></a>

您可以續約並重新匯入已過期的 Client VPN 伺服器憑證。根據您正在使用的 OpenVPN easy-rsa 版本，程序會有所不同。如需詳細資訊，請參閱 [Easy-RSA 3 憑證續約和撤銷文件](https://github.com/OpenVPN/easy-rsa/blob/master/doc/EasyRSA-Renew-and-Revoke.md)。

**續約您的伺服器憑證**

1. 執行下列**其中一項**操作：
   + Easy-RSA 3.1.x 版

     1. 執行憑證更新命令。

       ```
       $ ./easyrsa renew server nopass
       ```
   + Easy-RSA 3.2.x 版

     1. 執行 expire 命令。

        ```
        $ ./easyrsa expire server
        ```

     1. 簽署新的憑證。

        ```
        $ ./easyrsa --san=DNS:server sign-req server server
        ```

1. 建立自訂資料夾，將新檔案複製到該資料夾中，然後導覽至該資料夾。

   ```
   $ 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/
   ```

1. 將新檔案匯入 ACM。請務必將它們與 Client VPN 端點匯入至相同區域中。

   ```
   $ aws acm import-certificate \
       --certificate fileb://server.crt \
       --private-key fileb://server.key \
       --certificate-chain fileb://ca.crt \
       --certificate-arn arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-12345678901
   ```