選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 API Gateway 中產生和設定後端驗證的 SSL 憑證

焦點模式
在 API Gateway 中產生和設定後端驗證的 SSL 憑證 - Amazon API Gateway

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

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

您可以使用 API Gateway 產生 SSL 憑證,並在後端系統中使用其公開金鑰確認對後端系統的 HTTP 請求來自 API Gateway。這可讓 HTTP 後端系統僅接受 Amazon API Gateway 所發出的請求並加以控管,即使後端系統可公開存取也一樣。

注意

有些後端伺服器可能不支援 SSL 用戶端身分驗證,因為 API Gateway 可以確實傳回 SSL 憑證錯誤。如需不相容的後端伺服器清單,請參閱「Amazon API Gateway 重要說明」。

API Gateway 所產生的 SSL 憑證為自我簽署憑證,且只有在 API Gateway 主控台中或透過 API 才能看見憑證的公開金鑰。

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

  1. 在以下網址開啟 API Gateway 主控台:https://console.aws.amazon.com/apigateway/

  2. 選擇 REST API。

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

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

  5. 描述,請輸入描述。

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

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

設定 API 來使用 SSL 憑證

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

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

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

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

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

  5. 選擇儲存變更

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

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

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

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

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

  3. 選擇測試

API Gateway 會顯示所選擇的 SSL 憑證,讓 HTTP 後端系統對 API 進行身分驗證。

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

以下說明假設您已完成使用 API Gateway 主控台產生用戶端憑證中的步驟,且已下載用戶端憑證的複本。若要下載用戶端憑證,您可以呼叫 API Gateway REST API 的 clientcertificate:by-id 或 AWS CLI 的 get-client-certificate

在設定後端 HTTPS 伺服器以驗證 API Gateway 的用戶端 SSL 憑證之前,請務必取得 PEM 編碼的私密金鑰,以及由受信任之憑證授權機構提供的伺服器端憑證。

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

支援的憑證授權單位包括 Let's Encrypt在 API Gateway 中,API Gateway 支援的 HTTP 與 HTTP 代理整合憑證授權單位 其中之一。

例如,假設用戶端憑證檔案是 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);

針對節點-express 應用程式,您可以使用 client-certificate-auth 模組,透過 PEM 編碼憑證來驗證用戶端請求。

針對其他 HTTPS 伺服器,請參閱伺服器的文件。

輪換到期的用戶端憑證

由 API Gateway 產生的用戶端憑證有效時間為 365 天。您必須在 API 階段的用戶端憑證過期之前輪換憑證,以避免 API 停機。您可以檢查憑證的過期日期,方法是呼叫 API Gateway REST API 的 clientCertificate:by-idget-client-certificate 的 AWS CLI 命令,並檢查傳回的 expirationDate 屬性。

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

  1. 產生新的用戶端憑證,方法是呼叫 API Gateway REST API 的 clientcertificate:generategenerate-client-certificate 的 AWS CLI 命令。在本教學中,我們將假設新的用戶端憑證 ID 為 ndiqef

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

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

  3. 更新 API 階段以使用新的用戶端憑證,方法是以新的用戶端憑證 ID (ndiqef) 呼叫 API Gateway REST API 的 stage:update,如下所示:

    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" } ] }

    或者,您也可以呼叫 update-stage CLI 命令。

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

  5. 從 API Gateway 刪除舊憑證,方法是呼叫 API Gateway REST API 的 clientcertificate:delete,並指定舊憑證的 clientCertificateId (a1b2c3),如下所示:

    DELETE /clientcertificates/a1b2c3

    或者,您也可以呼叫 delete-client-certificate CLI 命令:

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

若要在主控台中針對先前部署的 API 輪換用戶端憑證,請執行下列作業:

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

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

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

  4. 在所選取的 API 下選擇 Stages (階段),然後選擇階段。

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

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

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

    您需要重新部署 API,變更才會生效。如需詳細資訊,請參閱 在 API Gateway 中建立 REST API 的部署

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。