本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在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閘道主控台產生用戶端憑證
開啟API閘道主控台,位於https://console.aws.amazon.com/apigateway/
。 選擇一個RESTAPI。
在主導覽窗格中,選擇用戶端憑證。
從用戶端憑證頁面,選擇產生憑證。
-
在描述,請輸入描述。
-
選擇產生憑證以產生憑證。APIGateway 會產生新憑證GUID,並傳回新憑證以及PEM編碼的公開金鑰。
您現在已準備好設定API為使用憑證。
設定使API用SSL憑證
以下說明假設您已完成使用API閘道主控台產生用戶端憑證中的步驟。
-
在 API Gateway 主控台中,建立或開啟您要使用用戶端憑證的憑證。API請確定API已部署至階段。
在主導覽窗格中,選擇階段。
在階段詳細資訊區段中,選擇編輯。
針對用戶端憑證,選取一個憑證。
-
選擇儲存變更。
如果先前API已在 API Gateway 主控台中部署,您必須重新部署它,變更才會生效。如需詳細資訊,請參閱 RESTAPI在API閘道中建立部署。
為憑證選取API並儲存之後,APIGateway 會將憑證用於您的中HTTP整合的所有呼叫API。
測試叫用以驗證用戶端憑證組態
-
選擇一API種方法。選擇測試標籤。您可能需要選擇向右箭頭按鈕才能顯示測試索引標籤。
-
針對用戶端憑證,選取一個憑證。
選擇 測試。
API閘道為HTTP後端顯示選擇的SSL憑證,以驗證API.
設定後端HTTPS伺服器以驗證用戶端憑證
以下說明假設您已完成使用API閘道主控台產生用戶端憑證中的步驟,且已下載用戶端憑證的複本。您可以透過呼叫API閘道RESTAPI或clientcertificate:by-id
get-client-certificate
的來下載用戶端憑證 AWS CLI。
在設定後端HTTPS伺服器以驗證API閘道的用戶端SSL憑證之前,您必須先取得由受信任憑證授權單位提供的經過PEM編碼的私密金鑰和伺服器端憑證。
如果伺服器網域名稱是myserver.mydomain.com
,則伺服器憑證的CNAME值必須是myserver.mydomain.com
或*.mydomain.com
。
支援的憑證授權單位包括 Let's Encrypt
例如,假設用戶端憑證檔案是 apig-cert.pem
,而伺服器私密金鑰和憑證檔案分別為 server-key.pem
和 server-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);
對於節點快速
如需其他HTTPS伺服器,請參閱伺服器的說明文件。
輪換到期的用戶端憑證
API閘道產生的用戶端憑證有效期為 365 天。您必須在階段上的用戶端憑證到API期之前輪換憑證,以避免API. 您可以呼叫閘道的:by-id API 或RESTAPI指令並檢查傳回clientCertificate的屬性,來get-client-certificate檢查憑證 AWS CLI 的到期日。expirationDate
若要輪換用戶端憑證,請執行下列作業:
-
通過調用客戶端證書生成新的客戶端證書:API網關RESTAPI的生成或命令。 AWS CLI generate-client-certificate在本教學中,我們將假設新的用戶端憑證 ID 為
ndiqef
。 -
更新後端伺服器以納入新的用戶端憑證。請先不要移除現有的用戶端憑證。
有些伺服器可能需要重新啟動以完成更新。請參閱伺服器文件,確認更新期間是否需要重新啟動伺服器。
-
使用新的用戶端憑證 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命令。
-
更新後端伺服器以移除舊的用戶端憑證。
-
通過調用客戶端證書:刪除API網關 RESTAPI,指定舊證書的 clientCertificateId (
a1b2c3
)來刪除舊證書從API網關中刪除舊證書:DELETE /clientcertificates/a1b2c3
或者通過調用以下CLI命令 delete-client-certificate:
aws apigateway delete-client-certificate --client-certificate-id a1b2c3
若要輪替先前部署的主控台中的用戶端憑證API,請執行下列動作:
在主導覽窗格中,選擇用戶端憑證。
從用戶端憑證窗格,選擇產生憑證。
-
開啟API您要使用用戶端憑證的。
選擇所選項目下的階段,API然後選擇一個階段。
在階段詳細資訊區段中,選擇編輯。
針對用戶端憑證,選取新的憑證。
-
若要儲存設定,請選擇儲存變更。
您必須重新部署,API變更才會生效。如需更多詳細資訊,請參閱 RESTAPI在API閘道中建立部署。