AWS CloudHSM SSL/TLS 在 Linux 上使用 NGINX或 Apache 搭配 Open 卸載SSL - AWS CloudHSM

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

AWS CloudHSM SSL/TLS 在 Linux 上使用 NGINX或 Apache 搭配 Open 卸載SSL

本主題提供 step-by-step在 Linux Web 伺服器上使用 AWS CloudHSM 設定SSL/TLS卸載的指示。

概觀

在 Linux 上, NGINXApache HTTP Server Web 伺服器軟體會與 OpenSSL 整合以支援 HTTPS。AWS CloudHSM Open 的動態引擎SSL提供介面,讓 Web 伺服器軟體能夠使用叢集HSMs中的 進行密碼編譯卸載和金鑰儲存。開放式SSL引擎是將 Web 伺服器 AWS CloudHSM 連接至叢集的橋接器。

若要完成本教學課程,您必須先選擇在 Linux 上使用 NGINX或 Apache Web 伺服器軟體。然後,教學課程會向您示範如何執行以下操作:

  • 在 Amazon EC2執行個體上安裝 Web 伺服器軟體。

  • 將 Web 伺服器軟體設定為HTTPS使用儲存在 AWS CloudHSM 叢集中的私有金鑰支援 。

  • (選用) 使用 Amazon EC2建立第二個 Web 伺服器執行個體,並使用 Elastic Load Balancing 建立負載平衡器。使用負載平衡器可將負載分散到多部伺服器,進而提升效能。它也可以在一或多個伺服器失敗時提供備援和高可用性。

當您準備好開始時,請移至步驟 1:設定先決條件

步驟 1:設定先決條件

不同平台需要不同的先決條件。請使用下方符合您平台的先決條件區段。

Client 5 SDK 的先決條件

若要使用 Client 5 SDK 設定 Web 伺服器SSL/TLS卸載,您需要下列項目:

  • 具有至少兩個硬體安全模組的作用中 AWS CloudHSM 叢集 (HSM)

    注意

    您可以使用單一HSM叢集,但必須先停用用戶端金鑰耐久性。如需詳細資訊,請參閱管理用戶端金鑰耐久性設定用戶端 SDK 5 設定工具

  • 執行 Linux 作業系統的 Amazon EC2執行個體,已安裝下列軟體:

    • Web 伺服器 ( NGINX或 Apache)

    • 用戶端 5 SDK 的開放SSL動態引擎

  • 在 上擁有和管理 Web 伺服器私有金鑰的加密使用者 (CU)HSM。

在 上設定 Linux Web 伺服器執行個體和建立 CU HSM
  1. 安裝並設定適用於 的 OpenSSL Dynamic Engine AWS CloudHSM。如需安裝 OpenSSL Dynamic Engine 的詳細資訊,請參閱 OpenSSL Dynamic Engine for Client SDK 5

  2. 在可存取叢集的 EC2 Linux 執行個體上,安裝 NGINX或 Apache Web 伺服器:

    Amazon Linux
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd24 mod24_ssl
    Amazon Linux 2
    • 如需有關如何在 Amazon Linux 2 NGINX上下載最新版本 的資訊,請參閱NGINX網站

      NGINX 適用於 Amazon Linux 2 的最新版本使用比 OpenSSL 系統版本更新的 Open 版本SSL。安裝 後NGINX,您需要從 AWS CloudHSM OpenSSL Dynamic Engine 程式庫建立符號連結,以連結至此版本的 OpenSSL 預期的位置

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 7
    • 如需有關如何在 CentOS 7 NGINX上下載最新版本 的資訊,請參閱 NGINX網站

      NGINX 適用於 CentOS 7 的最新版本使用比 OpenSSL 系統版本更新的 Open 版本SSL。安裝 後NGINX,您需要從 AWS CloudHSM OpenSSL Dynamic Engine 程式庫建立符號連結,以連結至此版本的 OpenSSL 預期的位置

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 7
    • 如需有關如何在 Red Hat 7 NGINX上下載最新版本 的資訊,請參閱NGINX網站

      NGINX 適用於 Red Hat 7 的最新版本使用比 OpenSSL 系統版本更新的 Open 版本SSL。安裝 後NGINX,您需要從 AWS CloudHSM OpenSSL Dynamic Engine 程式庫建立符號連結,以連結至此版本的 OpenSSL 預期的位置

      $ sudo ln -sf /opt/cloudhsm/lib/libcloudhsm_openssl_engine.so /usr/lib64/engines-1.1/cloudhsm.so
    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 8
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 8
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd mod_ssl
    Ubuntu 18.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 20.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 22.04

    OpenSSL Dynamic Engine 的支援尚無法使用。

  3. 使用 CloudHSM CLI建立 CU。如需管理HSM使用者的詳細資訊,請參閱使用 CloudHSM 管理HSM使用者CLI

    提示

    保持追蹤 CU 使用者名稱和密碼。稍後當您為 Web 伺服器產生或匯入HTTPS私有金鑰和憑證時,您將需要這些金鑰和憑證。

完成這些步驟之後,請移至 步驟 2:產生或匯入私有金鑰和SSL/TLS憑證

備註
  • 若要使用 Security-Enhanced Linux (SELinux) 和 Web 伺服器,您必須允許連接埠 2223 上的傳出TCP連線,這是 Client SDK 5 用來與 通訊的連接埠HSM。

  • 若要建立和啟用叢集,並授予叢集的EC2執行個體存取權,請完成入門 AWS CloudHSM中的步驟。入門提供 step-by-step使用 HSM和 Amazon EC2用戶端執行個體建立作用中叢集的指示。可以使用此用戶端執行個體做為 Web 伺服器。

  • 若要避免停用用戶端金鑰耐久性,HSM請將多個 新增至叢集。如需詳細資訊,請參閱將 HSM新增至 AWS CloudHSM 叢集

  • 若要連線至用戶端執行個體,您可以使用 SSH或 Pu TTY。如需詳細資訊,請參閱 Amazon EC2 文件中的使用 連線至您的 Linux 執行個體SSH,或從 Windows 使用 Pu 連線至您的 Linux 執行個體TTY

Client 3 SDK 的先決條件

若要使用用戶端 3 SDK 設定 Web 伺服器SSL/TLS卸載,您需要下列項目:

  • 具有至少一個 的作用中 AWS CloudHSM 叢集HSM。

  • 執行 Linux 作業系統的 Amazon EC2執行個體,已安裝下列軟體:

    • AWS CloudHSM 用戶端和命令列工具。

    • NGINX 或 Apache Web 伺服器應用程式。

    • Open 的 AWS CloudHSM 動態引擎SSL。

  • 在 上擁有和管理 Web 伺服器私有金鑰的加密使用者 (CU)HSM。

在 上設定 Linux Web 伺服器執行個體和建立 CU HSM
  1. 完成「開始使用」中的步驟。然後,您將有一個作用中叢集,其中包含一個 HSM和一個 Amazon EC2用戶端執行個體。您的EC2執行個體將使用命令列工具進行設定。使用此用戶端執行個體做為您的 Web 伺服器。

  2. 連接至您的用戶端執行個體。如需詳細資訊,請參閱 Amazon EC2 文件中的使用 連線至您的 Linux 執行個體SSH,或從 Windows 使用 Pu 連線至您的 Linux 執行個體TTY

  3. 在可存取叢集的 EC2 Linux 執行個體上,安裝 NGINX或 Apache Web 伺服器:

    Amazon Linux
    • NGINX

      $ sudo yum install nginx
    • Apache

      $ sudo yum install httpd24 mod24_ssl
    Amazon Linux 2
    • NGINX 1.19 版是與 Amazon Linux 2 SDK 上的 Client 3 引擎NGINX相容的最新版本。

      如需詳細資訊和下載 1.19 NGINX版,請參閱NGINX網站

    • Apache

      $ sudo yum install httpd mod_ssl
    CentOS 7
    • NGINX 1.19 版是與 CentOS 7 SDK 上的 Client 3 引擎NGINX相容的最新版本。

      如需詳細資訊和下載 1.19 NGINX版,請參閱NGINX網站

    • Apache

      $ sudo yum install httpd mod_ssl
    Red Hat 7
    • NGINX 1.19 版是與 Red Hat 7 SDK 上的 Client 3 引擎NGINX相容的最新版本。

      如需詳細資訊和下載 1.19 NGINX版,請參閱NGINX網站

    • Apache

      $ sudo yum install httpd mod_ssl
    Ubuntu 16.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
    Ubuntu 18.04
    • NGINX

      $ sudo apt install nginx
    • Apache

      $ sudo apt install apache2
  4. (選用) HSMs將更多新增至叢集。如需詳細資訊,請參閱將 HSM新增至 AWS CloudHSM 叢集

  5. 使用 cloudhsm_mgmt_util 建立 CU。如需詳細資訊,請參閱HSM 使用者。保持追蹤 CU 使用者名稱和密碼。稍後當您為 Web 伺服器產生或匯入HTTPS私有金鑰和憑證時,您將需要這些金鑰和憑證。

完成這些步驟之後,請移至 步驟 2:產生或匯入私有金鑰和SSL/TLS憑證

步驟 2:產生或匯入私有金鑰和SSL/TLS憑證

若要啟用 HTTPS,您的 Web 伺服器應用程式 (NGINX 或 Apache) 需要私有金鑰和具有 的對應SSL/TLS certificate. To use web server SSL/TLS卸載 AWS CloudHSM,您必須在 AWS CloudHSM 叢集中將私有金鑰存放在 HSM中。您可採用下列其中一種方式來這樣做:

  • 如果您還沒有私有金鑰和對應的憑證,請在 中產生私有金鑰HSM。您可以使用私有金鑰來建立憑證簽署請求 (CSR),並用來建立 SSL/TLS 憑證。

  • 如果您已有私有金鑰和對應的憑證,請將私有金鑰匯入 HSM。

無論您選擇哪種方法,您都可以從 匯出假的PEM私有金鑰HSM,這是PEM格式為 的私有金鑰檔案,其中包含對存放在 上的私有金鑰的參考 HSM(這不是實際的私有金鑰)。您的 Web 伺服器會在 SSL/TLS 卸載HSM期間使用假PEM私有金鑰檔案來識別 上的私有金鑰。

產生私有金鑰和憑證

產生私有金鑰

本節說明如何使用用戶端 3 的金鑰管理公用程式 (KMU) SDK 產生金鑰對。在 內產生金鑰對後HSM,您可以將其匯出為假PEM檔案,並產生對應的憑證。

與 Key Management Utility (KMU) 一起產生的私有金鑰可與 Client SDK 3 和 Client 5 SDK 搭配使用。

安裝和設定 Key Management Utility (KMU)
  1. 連接至您的用戶端執行個體。

  2. 安裝和設定用戶端 SDK 3。

  3. 執行下列命令以啟動 AWS CloudHSM 用戶端。

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 20.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  4. 執行以下命令來啟動 key_mgmt_util 命令列工具。

    $ /opt/cloudhsm/bin/key_mgmt_util
  5. 執行下列命令以登入 HSM。Replace (取代) <user name> 以及 <password> 密碼編譯使用者 (CU) 的使用者名稱和密碼。

    Command: loginHSM -u CU -s <user name> -p <password>>

產生私有金鑰

根據您的使用案例,您可以產生 RSA或 EC 金鑰對。執行以下任意一項:

  • 在 上產生RSA私有金鑰 HSM

    使用 genRSAKeyPair命令來產生RSA金鑰對。此範例會產生一個RSA金鑰對,其模數為 2048、公有指數為 65537,以及標籤為 tls_rsa_keypair.

    Command: genRSAKeyPair -m 2048 -e 65537 -l tls_rsa_keypair

    如果命令成功,您應該會看到下列輸出,指出您已成功產生RSA金鑰對。

    Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8 Cluster Status: Node id 1 status: 0x00000000 : HSM Return: SUCCESS
  • 若要在 上產生 EC 私有金鑰 HSM

    使用 genECCKeyPair 命令來產生 EC 金鑰對。此範例會產生曲線 ID 為 2 (對應至NID_X9_62_prime256v1曲線) 且標籤為 的 EC 金鑰對 tls_ec_keypair.

    Command: genECCKeyPair -i 2 -l tls_ec_keypair

    如果命令成功,您應該會看到下列輸出,指出您已成功產生 EC 金鑰對。

    Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS Cfm3GenerateKeyPair: public key handle: 7 private key handle: 8 Cluster Status: Node id 1 status: 0x00000000 : HSM Return: SUCCESS

匯出假PEM私密金鑰檔案

在 上擁有私有金鑰後HSM,您必須匯出假PEM私有金鑰檔案。此檔案不包含實際金鑰資料,但允許開啟SSL動態引擎識別 上的私有金鑰HSM。然後,您可以使用私有金鑰來建立憑證簽署請求 (CSR),並簽署 CSR來建立憑證。

注意

使用 Key Management Utility (KMU) 產生的假PEM檔案可與 Client SDK 3 和 Client 5 SDK 搭配使用。

識別對應至您要匯出為假 之金鑰的金鑰識別碼PEM,然後執行下列命令,以假PEM格式匯出私有金鑰並將其儲存至 檔案。以您自己的值取代下列值。

  • <private_key_handle> – 產生的私有金鑰的處理。這是上一個步驟的金鑰產生命令之一所產生的控制代碼。在上述範例中,私有金鑰的控制代碼是 8。

  • <web_server_fake_PEM.key> – 將寫入假PEM金鑰的檔案名稱。

Command: getCaviumPrivKey -k <private_key_handle> -out <web_server_fake_PEM.key>

Exit (退出)

執行以下命令來停止 key_mgmt_util。

Command: exit

您現在應該在系統上有一個新檔案,位於 指定的路徑 <web_server_fake_PEM.key> 在上述命令中。此檔案是假PEM的私有金鑰檔案。

產生自簽憑證

產生假PEM私密金鑰後,您可以使用此檔案來產生憑證簽署請求 (CSR) 和憑證。

在生產環境中,您通常會使用憑證授權機構 (CA) 從 建立憑證CSR。測試環境不需要 CA。如果您確實使用 CA,請將CSR檔案傳送給他們,並使用他們在 Web 伺服器中提供您的已簽署SSL/TLS憑證HTTPS。

除了使用 CA 之外,您也可以使用 AWS CloudHSM 開啟SSL動態引擎來建立自我簽署憑證。自簽憑證不受瀏覽器所信任,請勿用於生產環境。可以用於測試環境。

警告

自簽憑證應該只用於測試環境。若為生產環境,請使用更安全的方法 (例如憑證授權單位) 來建立憑證。

安裝和關閉 OpenSSL Dynamic Engine
  1. 連接至您的用戶端執行個體。

  2. 要安裝與設定,請執行下列其中一個動作:

產生憑證
  1. 取得在先前步驟中產生的假PEM檔案副本。

  2. 建立 CSR

    執行下列命令,使用 AWS CloudHSM 開啟SSL動態引擎來建立憑證簽署請求 (CSR)。Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。Replace (取代) <web_server.csr> 包含您 的檔案名稱CSR。

    req 是互動式命令。回應每個欄位。欄位資訊會複製到您的 SSL/TLS 憑證。

    $ openssl req -engine cloudhsm -new -key <web_server_fake_PEM.key> -out <web_server.csr>
  3. 建立自簽憑證

    執行下列命令,使用 AWS CloudHSM OpenSSL Dynamic Engine 在 上使用CSR私有金鑰簽署您的 HSM。這會建立自簽憑證。在命令中,以您自己的值取代下列值。

    • <web_server.csr> – 包含 的檔案名稱CSR。

    • <web_server_fake_PEM.key> – 包含假PEM私有金鑰的檔案名稱。

    • <web_server.crt> – 將包含 Web 伺服器憑證的檔案名稱。

    $ openssl x509 -engine cloudhsm -req -days 365 -in <web_server.csr> -signkey <web_server_fake_PEM.key> -out <web_server.crt>

完成這些步驟之後,請移至 步驟 3:設定 Web 伺服器

匯入現有的私有金鑰和憑證

您可能已經有私有金鑰和對應的 SSL/TLS 憑證,用於 Web 伺服器上HTTPS的 。如果是這樣,您可以HSM按照本節中的步驟將該索引鍵匯入 。

注意

私有金鑰匯入和用戶端SDK相容性的一些備註:

  • 匯入現有的私有金鑰需要用戶端 SDK 3。

  • 您可以將來自用戶端 SDK 3 的私有金鑰與用戶端 5 SDK 搭配使用。

  • OpenSSL Dynamic Engine for Client SDK 3 不支援最新的 Linux 平台,但 OpenSSL Dynamic Engine for Client 5 SDK 的實作則支援。您可以使用 Client 3 隨附的 Key Management Utility SDK (KMU) 匯入現有的私有金鑰,然後使用該私有金鑰和搭配 Client 5 的 OpenSSL Dynamic Engine SDK 實作,以在最新的 Linux 平台上支援SSL/TLS卸載。

HSM 使用 Client 3 將現有的私有金鑰匯入 SDK
  1. 連線至您的 Amazon EC2用戶端執行個體。如有必要,請將現有的私有金鑰和憑證複製到執行個體。

  2. 安裝和設定用戶端 SDK 3

  3. 執行下列命令以啟動 AWS CloudHSM 用戶端。

    Amazon Linux
    $ sudo start cloudhsm-client
    Amazon Linux 2
    $ sudo service cloudhsm-client start
    CentOS 7
    $ sudo service cloudhsm-client start
    CentOS 8
    $ sudo service cloudhsm-client start
    RHEL 7
    $ sudo service cloudhsm-client start
    RHEL 8
    $ sudo service cloudhsm-client start
    Ubuntu 16.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 18.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 20.04 LTS
    $ sudo service cloudhsm-client start
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  4. 執行以下命令來啟動 key_mgmt_util 命令列工具。

    $ /opt/cloudhsm/bin/key_mgmt_util
  5. 執行下列命令以登入 HSM。Replace (取代) <user name> 以及 <password> 密碼編譯使用者 (CU) 的使用者名稱和密碼。

    Command: loginHSM -u CU -s <user name> -p <password>
  6. 執行下列命令,將私有金鑰匯入 HSM。

    1. 執行以下命令,建立僅對目前工作階段而言有效的對稱包裝金鑰。以下顯示命令和輸出。

      Command: genSymKey -t 31 -s 16 -sess -l wrapping_key_for_import Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS Symmetric Key Created. Key Handle: 6 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
    2. 執行下列命令,將現有的私有金鑰匯入 HSM。以下顯示命令和輸出。以您自己的值取代下列值:

      • <web_server_existing.key> – 包含私有金鑰的檔案名稱。

      • <web_server_imported_key> – 匯入私有金鑰的標籤。

      • <wrapping_key_handle> – 包裝由上述命令產生的金鑰控制碼。在上述範例中,包裝金鑰控制代碼是 6。

      Command: importPrivateKey -f <web_server_existing.key> -l <web_server_imported_key> -w <wrapping_key_handle> BER encoded key length is 1219 Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Private Key Unwrapped. Key Handle: 8 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
  7. 執行下列命令,以假PEM格式匯出私有金鑰,並將其儲存至 檔案。以您自己的值取代下列值。

    • <private_key_handle> – 匯入私有金鑰的處理方式。這是上一個步驟的第二個命令所產生的控制代碼。在上述範例中,私有金鑰的控制代碼是 8。

    • <web_server_fake_PEM.key> – 包含您匯出之偽PEM私有金鑰的檔案名稱。

    Command: getCaviumPrivKey -k <private_key_handle> -out <web_server_fake_PEM.key>
  8. 執行以下命令來停止 key_mgmt_util。

    Command: exit

完成這些步驟之後,請移至 步驟 3:設定 Web 伺服器

步驟 3:設定 Web 伺服器

更新您的 Web 伺服器軟體組態,以使用您在上一個步驟 中建立的HTTPS憑證和對應的假PEM私有金鑰。請記得在開始之前備份現有的憑證和金鑰。這將完成使用 為 SSL/TLS 卸載設定 Linux Web 伺服器軟體 AWS CloudHSM。

完成以下其中一個區段中的步驟。

設定 NGINX Web 伺服器

使用本節在NGINX支援的平台上設定 。

更新 的 Web 伺服器組態 NGINX
  1. 連接至您的用戶端執行個體。

  2. 執行下列命令,為 Web 伺服器憑證和假PEM私有金鑰建立所需的目錄。

    $ sudo mkdir -p /etc/pki/nginx/private
  3. 執行以下命令,將您的 Web 伺服器憑證複製到所需的位置。Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    $ sudo cp <web_server.crt> /etc/pki/nginx/server.crt
  4. 執行下列命令,將您的假PEM私密金鑰複製到所需位置。Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    $ sudo cp <web_server_fake_PEM.key> /etc/pki/nginx/private/server.key
  5. 執行以下命令來變更檔案的擁有權,使得名為 nginx 的使用者可讀取這些檔案。

    $ sudo chown nginx /etc/pki/nginx/server.crt /etc/pki/nginx/private/server.key
  6. 執行以下命令來備份 /etc/nginx/nginx.conf 檔案。

    $ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
  7. 更新NGINX組態。

    注意

    每個叢集最多可支援所有 NGINX Web 伺服器 1000 個NGINX工作者程序。

    Amazon Linux

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    • 如果使用用戶端 SDK 3

      ssl_engine cloudhsm; env n3fips_password;
    • 如果使用 Client SDK 5

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Amazon Linux 2

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    • 如果使用用戶端 SDK 3

      ssl_engine cloudhsm; env n3fips_password;
    • 如果使用 Client SDK 5

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    CentOS 7

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    • 如果使用用戶端 SDK 3

      ssl_engine cloudhsm; env n3fips_password;
    • 如果使用 Client SDK 5

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    CentOS 8

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 7

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    • 如果使用用戶端 SDK 3

      ssl_engine cloudhsm; env n3fips_password;
    • 如果使用 Client SDK 5

      ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Red Hat 8

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 16.04 LTS

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    ssl_engine cloudhsm; env n3fips_password;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 18.04 LTS

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 20.04 LTS

    使用文字編輯器來編輯 /etc/nginx/nginx.conf 檔案。這需要 Linux 根許可。在檔案上方,新增下列行:

    ssl_engine cloudhsm; env CLOUDHSM_PIN;

    然後將以下內容新增至 檔案的 TLS區段:

    # Settings for a TLS enabled server. server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; # It is *strongly* recommended to generate unique DH parameters # Generate them with: openssl dhparam -out /etc/pki/nginx/dhparams.pem 2048 #ssl_dhparam "/etc/pki/nginx/dhparams.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

    儲存檔案。

  8. 備份 systemd 組態檔案,然後設定 EnvironmentFile 路徑。

    Amazon Linux

    不需要採取行動。

    Amazon Linux 2
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    CentOS 7

    不需要採取行動。

    CentOS 8
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    Red Hat 7

    不需要採取行動。

    Red Hat 8
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 16.04
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 18.04
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 20.04 LTS
    1. 備份 nginx.service 檔案。

      $ sudo cp /lib/systemd/system/nginx.service /lib/systemd/system/nginx.service.backup
    2. 在文字編輯器中開啟 /lib/systemd/system/nginx.service 檔案,然後在 [Service] (服務) 區段中,新增以下路徑:

      EnvironmentFile=/etc/sysconfig/nginx
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  9. 檢查 /etc/sysconfig/nginx 檔案是否存在,然後執行以下其中一項:

    • 如果檔案存在,請執行下列命令來備份檔案:

      $ sudo cp /etc/sysconfig/nginx /etc/sysconfig/nginx.backup
    • 如果檔案不存在,請開啟文字編輯器,然後建立在 /etc/sysconfig/ 資料夾中建立名為 nginx 的檔案。

  10. 設定NGINX環境。

    注意

    用戶端 SDK 5 引入CLOUDHSM_PIN環境變數,用於儲存 CU 的憑證。

    Amazon Linux

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Amazon Linux 2

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    CentOS 7

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    CentOS 8

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Red Hat 7

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Red Hat 8

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Ubuntu 16.04 LTS

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    n3fips_password=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Ubuntu 18.04 LTS

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Ubuntu 20.04 LTS

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    儲存檔案。

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  11. 啟動 NGINX Web 伺服器。

    Amazon Linux

    在文字編輯器中開啟 /etc/sysconfig/nginx 檔案。這需要 Linux 根許可。新增加密使用者 (CU) 憑證:

    $ sudo service nginx start
    Amazon Linux 2

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    CentOS 7

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    CentOS 8

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Red Hat 7

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Red Hat 8

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Ubuntu 16.04 LTS

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Ubuntu 18.04 LTS

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Ubuntu 20.04 LTS

    停止任何執行中的NGINX程序

    $ sudo systemctl stop nginx

    重新載入 systemd 組態以取得最新的變更

    $ sudo systemctl daemon-reload

    啟動NGINX程序

    $ sudo systemctl start nginx
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  12. (選用) 將您的平台設定為在啟動NGINX時啟動。

    Amazon Linux
    $ sudo chkconfig nginx on
    Amazon Linux 2
    $ sudo systemctl enable nginx
    CentOS 7

    不需要採取行動。

    CentOS 8
    $ sudo systemctl enable nginx
    Red Hat 7

    不需要採取行動。

    Red Hat 8
    $ sudo systemctl enable nginx
    Ubuntu 16.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 18.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 20.04 LTS
    $ sudo systemctl enable nginx
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

在更新您的 Web 伺服器組態之後,請移至 步驟 4:啟用HTTPS流量並驗證憑證

設定 Apache Web 伺服器

使用此區段可在支援的平台上設定 Apache。

更新 Apache 的 Web 伺服器組態
  1. 連線至您的 Amazon EC2用戶端執行個體。

  2. 為平台定義憑證和私有金鑰的預設位置。

    Amazon Linux

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Amazon Linux 2

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    CentOS 7

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    CentOS 8

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 7

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Red Hat 8

    /etc/httpd/conf.d/ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
    Ubuntu 16.04 LTS

    /etc/apache2/sites-available/default-ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 18.04 LTS

    /etc/apache2/sites-available/default-ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 20.04 LTS

    /etc/apache2/sites-available/default-ssl.conf 檔案中,請確定這些值存在:

    SSLCertificateFile /etc/ssl/certs/localhost.crt SSLCertificateKeyFile /etc/ssl/private/localhost.key
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  3. 將 Web 伺服器憑證複製到平台所需的位置。

    Amazon Linux
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Amazon Linux 2
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    CentOS 7
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    CentOS 8
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Red Hat 7
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Red Hat 8
    $ sudo cp <web_server.crt> /etc/pki/tls/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Ubuntu 16.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Ubuntu 18.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Ubuntu 20.04 LTS
    $ sudo cp <web_server.crt> /etc/ssl/certs/localhost.crt

    Replace (取代) <web_server.crt> 您的 Web 伺服器憑證名稱。

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  4. 將您的假PEM私密金鑰複製到平台所需的位置。

    Amazon Linux
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Amazon Linux 2
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    CentOS 7
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    CentOS 8
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Red Hat 7
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Red Hat 8
    $ sudo cp <web_server_fake_PEM.key> /etc/pki/tls/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Ubuntu 16.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Ubuntu 18.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Ubuntu 20.04 LTS
    $ sudo cp <web_server_fake_PEM.key> /etc/ssl/private/localhost.key

    Replace (取代) <web_server_fake_PEM.key> 包含您假PEM私密金鑰的檔案名稱。

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  5. 如果平台需要,請更改這些檔案的所有權。

    Amazon Linux
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    Amazon Linux 2
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    CentOS 7
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    CentOS 8
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    Red Hat 7
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    Red Hat 8
    $ sudo chown apache /etc/pki/tls/certs/localhost.crt /etc/pki/tls/private/localhost.key

    提供讀取許可給名為 apache 的使用者。

    Ubuntu 16.04 LTS

    不需要採取行動。

    Ubuntu 18.04 LTS

    不需要採取行動。

    Ubuntu 20.04 LTS

    不需要採取行動。

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  6. 為平台設定 Apache 指令。

    Amazon Linux

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    儲存檔案。

    Amazon Linux 2

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    儲存檔案。

    CentOS 7

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    儲存檔案。

    CentOS 8

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    儲存檔案。

    Red Hat 7

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    儲存檔案。

    Red Hat 8

    找到此平台SSL的檔案:

    /etc/httpd/conf.d/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProxyCipherSuite HIGH:!aNULL

    儲存檔案。

    Ubuntu 16.04 LTS

    找到此平台SSL的檔案:

    /etc/apache2/mods-available/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA

    儲存檔案。

    啟用SSL模組和預設SSL站台組態:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 18.04 LTS

    找到此平台SSL的檔案:

    /etc/apache2/mods-available/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    儲存檔案。

    啟用SSL模組和預設SSL站台組態:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 20.04 LTS

    找到此平台SSL的檔案:

    /etc/apache2/mods-available/ssl.conf

    該文件包含定義伺服器應該如何運行的 Apache 指令。指令顯示在左側,後面接著一個值。使用文字編輯器編輯此檔案。這需要 Linux 根許可。

    使用這些值更新或輸入下列指令:

    SSLCryptoDevice cloudhsm SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA SSLProtocol TLSv1.2 TLSv1.3

    儲存檔案。

    啟用SSL模組和預設SSL站台組態:

    $ sudo a2enmod ssl $ sudo a2ensite default-ssl
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  7. 為平台設定環境值檔案。

    Amazon Linux

    不需要採取行動。環境值要填入 /etc/sysconfig/httpd

    Amazon Linux 2

    開啟 httpd 服務檔案:

    /lib/systemd/system/httpd.service

    將下列內容加入到 [Service] 區段:

    EnvironmentFile=/etc/sysconfig/httpd
    CentOS 7

    開啟 httpd 服務檔案:

    /lib/systemd/system/httpd.service

    將下列內容加入到 [Service] 區段:

    EnvironmentFile=/etc/sysconfig/httpd
    CentOS 8

    開啟 httpd 服務檔案:

    /lib/systemd/system/httpd.service

    將下列內容加入到 [Service] 區段:

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 7

    開啟 httpd 服務檔案:

    /lib/systemd/system/httpd.service

    將下列內容加入到 [Service] 區段:

    EnvironmentFile=/etc/sysconfig/httpd
    Red Hat 8

    開啟 httpd 服務檔案:

    /lib/systemd/system/httpd.service

    將下列內容加入到 [Service] 區段:

    EnvironmentFile=/etc/sysconfig/httpd
    Ubuntu 16.04 LTS

    不需要採取行動。環境值要填入 /etc/sysconfig/httpd

    Ubuntu 18.04 LTS

    不需要採取行動。環境值要填入 /etc/sysconfig/httpd

    Ubuntu 20.04 LTS

    不需要採取行動。環境值要填入 /etc/sysconfig/httpd

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  8. 在儲存平台環境變數的檔案中,設定包含加密使用者 (CU) 憑證的環境變數:

    Amazon Linux

    使用文字編輯器編輯 /etc/sysconfig/httpd

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    Amazon Linux 2

    使用文字編輯器編輯 /etc/sysconfig/httpd

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    CentOS 7

    使用文字編輯器編輯 /etc/sysconfig/httpd

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    CentOS 8

    使用文字編輯器編輯 /etc/sysconfig/httpd

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    Red Hat 7

    使用文字編輯器編輯 /etc/sysconfig/httpd

    • 如果使用用戶端 SDK 3

      n3fips_password=<CU user name>:<password>
    • 如果使用 Client SDK 5

      CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    Red Hat 8

    使用文字編輯器編輯 /etc/sysconfig/httpd

    CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    注意

    用戶端 SDK 5 引入CLOUDHSM_PIN環境變數,用於儲存 CU 的憑證。

    Ubuntu 16.04 LTS

    使用文字編輯器編輯 /etc/apache2/envvars

    export n3fips_password=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    Ubuntu 18.04 LTS

    使用文字編輯器編輯 /etc/apache2/envvars

    export CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    注意

    用戶端 SDK 5 引入CLOUDHSM_PIN環境變數,用於儲存 CU 的憑證。在用戶端 SDK 3 中,您將 CU 憑證存放在n3fips_password環境變數中。用戶端 SDK 5 支援兩個環境變數,但建議使用 CLOUDHSM_PIN

    Ubuntu 20.04 LTS

    使用文字編輯器編輯 /etc/apache2/envvars

    export CLOUDHSM_PIN=<CU user name>:<password>

    Replace (取代) <CU user name> 以及 <password> 使用 CU 憑證。

    注意

    用戶端 SDK 5 引入CLOUDHSM_PIN環境變數,用於儲存 CU 的憑證。在用戶端 SDK 3 中,您將 CU 憑證存放在n3fips_password環境變數中。用戶端 SDK 5 支援兩個環境變數,但建議使用 CLOUDHSM_PIN

    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  9. 啟動 Apache Web 伺服器。

    Amazon Linux
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Amazon Linux 2
    $ sudo systemctl daemon-reload $ sudo service httpd start
    CentOS 7
    $ sudo systemctl daemon-reload $ sudo service httpd start
    CentOS 8
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 7
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Red Hat 8
    $ sudo systemctl daemon-reload $ sudo service httpd start
    Ubuntu 16.04 LTS
    $ sudo service apache2 start
    Ubuntu 18.04 LTS
    $ sudo service apache2 start
    Ubuntu 20.04 LTS
    $ sudo service apache2 start
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

  10. (選用) 將平台設定為在啟動時啟動 Apache。

    Amazon Linux
    $ sudo chkconfig httpd on
    Amazon Linux 2
    $ sudo chkconfig httpd on
    CentOS 7
    $ sudo chkconfig httpd on
    CentOS 8
    $ systemctl enable httpd
    Red Hat 7
    $ sudo chkconfig httpd on
    Red Hat 8
    $ systemctl enable httpd
    Ubuntu 16.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 18.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 20.04 LTS
    $ sudo systemctl enable apache2
    Ubuntu 22.04 LTS

    OpenSSL Dynamic Engine 的支援尚無法使用。

在更新您的 Web 伺服器組態之後,請移至 步驟 4:啟用HTTPS流量並驗證憑證

步驟 4:啟用HTTPS流量並驗證憑證

使用 設定 SSL/TLS 卸載 Web 伺服器後 AWS CloudHSM,請將 Web 伺服器執行個體新增至允許傳入HTTPS流量的安全群組。這可讓 Web 瀏覽器等用戶端與您的 Web 伺服器建立HTTPS連線。然後與 Web 伺服器建立HTTPS連線,並驗證其是否使用您為 SSL/TLS 卸載設定的憑證 AWS CloudHSM。

啟用傳入HTTPS連線

若要從用戶端 (例如 Web 瀏覽器) 連線至 Web 伺服器,請建立允許傳入HTTPS連線的安全群組。具體而言,它應該允許連接埠 443 上的傳入TCP連線。將此安全群組指派到您的 Web 伺服器。

為 建立安全群組,HTTPS並將其指派給您的 Web 伺服器
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中選擇安全群組

  3. 選擇建立安全群組

  4. 對於 Create Security Group (建立安全群組),執行下列動作:

    1. 對於 Security group name (安全群組名稱),輸入您要建立之安全群組的名稱。

    2. (選用) 輸入您要建立之安全群組的描述。

    3. 針對 VPC,選擇包含 Web 伺服器 Amazon EC2執行個體VPC的 。

    4. 選取 Add Rule (新增規則)

    5. 對於類型 HTTPS請從下拉式清單中選取 。

    6. 對於來源,輸入來源位置。

    7. 選擇建立安全群組

  5. 在導覽窗格中,選擇 Instances (執行個體)。

  6. 選取 Web 伺服器執行個體旁的核取方塊。

  7. 選取頁面頂端的動作下拉式選單。選取安全性,然後選取變更安全群組

  8. 針對相關聯的安全群組 ,選取搜尋方塊,然後選擇您為 建立的安全群組HTTPS。然後選擇新增安全群組

  9. 選取 Save (儲存)。

驗證 是否HTTPS使用您設定的憑證

將 Web 伺服器新增至安全群組後,您可以驗證 SSL/TLS 卸載是否使用自我簽署憑證。您可以使用 Web 瀏覽器或使用 OpenSSL s_client 等工具來執行此操作。

使用 Web 瀏覽器驗證SSL/TLS卸載
  1. 使用 Web 瀏覽器,使用伺服器的公有DNS名稱或 IP 地址連線至您的 Web 伺服器。確保地址列URL中的 以 https://. 開頭 例如:https://ec2-52-14-212-67.us-east-2.compute.amazonaws.com/

    提示

    您可以使用 Amazon Route 53 之類的DNS服務,將網站的網域名稱 (例如 https://www.example.com/) 路由至 Web 伺服器。如需詳細資訊,請參閱 Amazon Route 53 開發人員指南或 服務文件中的將流量路由至 Amazon EC2執行個體 DNS

  2. 使用您的 Web 瀏覽器來檢視 Web 伺服器憑證。如需詳細資訊,請參閱下列內容:

    • 若為 Mozilla Firefox,請參閱 Mozilla 技術支援網站上的檢視憑證

    • 若為 Google Chrome,請參閱 Google Web 開發人員工具網站上的了解安全問題

    其他 Web 瀏覽器可能有類似的功能,可供您用來檢視 Web 伺服器憑證。

  3. 確定 SSL/TLS 憑證是您設定 Web 伺服器使用的憑證。

使用 OpenSSL s_client 驗證SSL/TLS卸載
  1. 執行下列 OpenSSL 命令,使用 連線至您的 Web 伺服器HTTPS。Replace (取代) <server name> 使用 Web 伺服器的公有DNS名稱或 IP 地址。

    openssl s_client -connect <server name>:443
    提示

    您可以使用 Amazon Route 53 之類的DNS服務,將網站的網域名稱 (例如 https://www.example.com/) 路由至 Web 伺服器。如需詳細資訊,請參閱 Amazon Route 53 開發人員指南或 服務文件中的將流量路由至 Amazon EC2執行個體 DNS

  2. 確定 SSL/TLS 憑證是您設定 Web 伺服器使用的憑證。

您現在有一個使用 保護的網站HTTPS。Web 伺服器的私有金鑰會儲存在 AWS CloudHSM 叢集HSM中的 中。

若要新增負載平衡器,請參閱 使用 Elastic Load Balancing 新增負載平衡器 AWS CloudHSM(選用)