在API閘道中產生並設定後端驗SSL證的憑證 - Amazon API Gateway

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

在API閘道中產生並設定後端驗SSL證的憑證

您可以使用 API Gateway 產生SSL憑證,然後在後端使用其公開金鑰來確認對後端系統的HTTP要求是來自 API Gateway。這讓您的HTTP後端只能控制和接受來自 Amazon API Gateway 的請求,即使後端可公開存取也是如此。

注意

有些後端伺服器可能不像 API Gateway 那樣支援SSL用戶端驗證,而且可能會傳回SSL憑證錯誤。如需不相容的後端伺服器清單,請參閱「Amazon API Gateway 重要備註」。

APIGateway 所產生的SSL憑證是自我簽署的,而且只有憑證的公開金鑰可在 API Gateway 主控台或透過APIs.

使用API閘道主控台產生用戶端憑證

  1. 開啟API閘道主控台,位於https://console.aws.amazon.com/apigateway/

  2. 選擇一個RESTAPI。

  3. 在主導覽窗格中,選擇用戶端憑證

  4. 用戶端憑證頁面,選擇產生憑證

  5. 描述,請輸入描述。

  6. 選擇產生憑證以產生憑證。APIGateway 會產生新憑證GUID,並傳回新憑證以及PEM編碼的公開金鑰。

您現在已準備好設定API為使用憑證。

設定使API用SSL憑證

以下說明假設您已完成使用API閘道主控台產生用戶端憑證中的步驟。

  1. 在 API Gateway 主控台中,建立或開啟您要使用用戶端憑證的憑證。API請確定API已部署至階段。

  2. 在主導覽窗格中,選擇階段

  3. 階段詳細資訊區段中,選擇編輯

  4. 針對用戶端憑證,選取一個憑證。

  5. 選擇儲存變更

    如果先前API已在 API Gateway 主控台中部署,您必須重新部署它,變更才會生效。如需詳細資訊,請參閱 RESTAPI在API閘道中建立部署

為憑證選取API並儲存之後,APIGateway 會將憑證用於您的中HTTP整合的所有呼叫API。

測試叫用以驗證用戶端憑證組態

  1. 選擇一API種方法。選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示測試索引標籤。

  2. 針對用戶端憑證,選取一個憑證。

  3. 選擇 測試

API閘道為HTTP後端顯示選擇的SSL憑證,以驗證API.

設定後端HTTPS伺服器以驗證用戶端憑證

以下說明假設您已完成使用API閘道主控台產生用戶端憑證中的步驟,且已下載用戶端憑證的複本。您可以透過呼叫API閘道RESTAPI或clientcertificate:by-idget-client-certificate的來下載用戶端憑證 AWS CLI。

在設定後端HTTPS伺服器以驗證API閘道的用戶端SSL憑證之前,您必須先取得由受信任憑證授權單位提供的經過PEM編碼的私密金鑰和伺服器端憑證。

如果伺服器網域名稱是myserver.mydomain.com,則伺服器憑證的CNAME值必須是myserver.mydomain.com*.mydomain.com

支援的憑證授權單位包括 Let's EncryptAPI閘道支援閘道的憑證授權單位HTTP以及HTTP代理整合 API 其中之一。

例如,假設用戶端憑證檔案是 apig-cert.pem,而伺服器私密金鑰和憑證檔案分別為 server-key.pemserver-cert.pem。對於後端的 Node.js 伺服器,您可以設定類似於以下內容的伺服器:

var fs = require('fs'); var https = require('https'); var options = { key: fs.readFileSync('server-key.pem'), cert: fs.readFileSync('server-cert.pem'), ca: fs.readFileSync('apig-cert.pem'), requestCert: true, rejectUnauthorized: true }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(443);

對於節點快速應用程式,您可以使用這些client-certificate-auth模組來驗證具有PEM編碼憑證的用戶端要求。

如需其他HTTPS伺服器,請參閱伺服器的說明文件。

輪換到期的用戶端憑證

API閘道產生的用戶端憑證有效期為 365 天。您必須在階段上的用戶端憑證到API期之前輪換憑證,以避免API. 您可以呼叫閘道的:by-id API 或RESTAPI指令並檢查傳回clientCertificate的屬性,來get-client-certificate檢查憑證 AWS CLI 的到期日。expirationDate

若要輪換用戶端憑證,請執行下列作業:

  1. 通過調用客戶端證書生成新的客戶端證書:API網關RESTAPI的生成或命令。 AWS CLI generate-client-certificate在本教學中,我們將假設新的用戶端憑證 ID 為 ndiqef

  2. 更新後端伺服器以納入新的用戶端憑證。請先不要移除現有的用戶端憑證。

    有些伺服器可能需要重新啟動以完成更新。請參閱伺服器文件,確認更新期間是否需要重新啟動伺服器。

  3. 使用新的用戶端憑證 ID () 呼叫API閘道的 Stage: update RESTAPI,以更新API階段以使用新的用戶端憑證:ndiqef

    PATCH /restapis/{restapi-id}/stages/stage1 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20170603T200400Z Authorization: AWS4-HMAC-SHA256 Credential=... { "patchOperations" : [ { "op" : "replace", "path" : "/clientCertificateId", "value" : "ndiqef" } ] }

    或者通過調用更新階段的CLI命令。

  4. 更新後端伺服器以移除舊的用戶端憑證。

  5. 通過調用客戶端證書:刪除API網關 RESTAPI,指定舊證書的 clientCertificateId (a1b2c3)來刪除舊證書從API網關中刪除舊證書:

    DELETE /clientcertificates/a1b2c3

    或者通過調用以下CLI命令 delete-client-certificate

    aws apigateway delete-client-certificate --client-certificate-id a1b2c3

若要輪替先前部署的主控台中的用戶端憑證API,請執行下列動作:

  1. 在主導覽窗格中,選擇用戶端憑證

  2. 用戶端憑證窗格,選擇產生憑證

  3. 開啟API您要使用用戶端憑證的。

  4. 選擇所選項目下的階段,API然後選擇一個階段。

  5. 階段詳細資訊區段中,選擇編輯

  6. 針對用戶端憑證,選取新的憑證。

  7. 若要儲存設定,請選擇儲存變更

    您必須重新部署,API變更才會生效。如需更多詳細資訊,請參閱 RESTAPI在API閘道中建立部署