為 API Gateway API 設定相互 TLS 驗證時,如何使用第三方發行的用戶端憑證?

2 分的閱讀內容
0

在為 Amazon API Gateway API 設定相互 Transport Layer Security (TLS) 身份驗證時,我想要使用第三方核發的用戶端憑證。

解決方案

若要針對具有 TLS 驗證的 API Gateway 使用第三方簽署的用戶端憑證,請遵循下列步驟:

  1. 建立信任庫以使用第三方簽署憑證。
  2. 為您的 API Gateway API 建立自訂網域名稱和 API 對應。
  3. 建立 DNS 記錄,將自訂網域名稱對應至 API Gateway。
  4. 停用預設端點。
  5. 測試 API。

備註:

建立信任庫以使用第三方簽署憑證

1.    產生一個 RootCA。RootCA 是用來發行用戶端憑證。

openssl genrsa -out RootCA.key 4096

openssl req -new -x509 -days 3650 -key RootCA.key -out RootCA.pem

2.    填寫必填欄位,然後輸入網域名稱。

3.    建立用戶端憑證私密金鑰、憑證簽署要求 (CSR) 和用戶端憑證。

openssl genrsa -out my_client.key 2048

openssl req -new -key my_client.key -out my_client.csr

4.    使用先前建立的 CA 簽署用戶端憑證。

openssl x509 -req -in my_client.csr -CA RootCA.pem -CAkey RootCA.key -set_serial 01 -out my_client.pem -days 3650 -sha256

5.    建立 Amazon Simple Storage Service (Amazon S3) 儲存貯體來存放 truststore.pem 檔案。

6.    將 RootCA.pem 上傳至 Amazon S3 儲存貯體信任庫。

7.   (選擇性) 建立從中繼 CA 憑證到根 CA 的憑證鏈結檔案。

Cat Intermediate.pem ca.pem >ca-chain.pem.

如需詳細資訊,請參閱設定您的信任庫

為您的 API Gateway API 建立自訂網域名稱和 API 對應

**注意:**API Gateway 只能看見金鑰大小為 2048 位元的憑證。憑證大小不可超過 2048 位元。

1.   開啟 API Gateway 主控台,然後選擇 Custom domain names (自訂網域名稱)。

2.   對於 Domain names (網域名稱),輸入您的網域名稱,然後選擇 Create (建立)。

3.   對於 Domain name (網域名稱),輸入您的網域名稱。

4.   對於 Minimum TLS version (最低 TLS 版本),請選擇 TLS 1.2

5.   啟用 Mutual TLS authentication (相互 TLS 驗證)。

6.   對於 Truststore URI (信任庫 URI),請輸入您先前建立的 Amazon S3 URI。

7.   對於 Endpoint configuration (端點組態),請選擇 Regional (地區)。

8.   對於 Certificate type (憑證類型),選擇您的憑證類型,然後選擇 Create domain name (建立網域名稱)。

9.   選擇您的自訂網域名稱,然後選擇 Configure API mappings (設定 API 對應)。

10.選擇 Add new mapping (新增對應)。

11.選擇對應的API階段路徑,然後選擇 Save (儲存)。

如需詳細資訊,請參閱如何為我的 API Gateway API 設定自訂網域名稱?

建立 DNS 記錄,將自訂網域名稱對應至 API Gateway

建立 DNS 記錄,將自訂網域名稱指向 API Gateway 區域網域名稱。這可讓繫結至自訂網域名稱的流量路由至 API 的區域主機名稱。DNS 記錄可以是 CNAME 或「別名」類型。

如需詳細資訊,請參閱設定路由 53 以將流量路由到 API Gateway 端點

停用預設端點

依預設,用戶端可以使用 API Gateway 為您的 API 產生的 execute-api API 端點來叫用 API。停用預設的 execute-api 端點,讓用戶端只能使用自訂網域名稱存取您的 API。

對於 HTTP API,請參閱停用 HTTP API 的預設端點

對於 REST API,請參閱停用 REST API 的預設端點

測試 API

使用 --key--cert 參數測試 API,以傳送用戶端憑證作為要求的一部分。

$ curl -v https://{YourCustomDomainName}/{resource} --key my_client.key --cert my_client.pem

**注意:**必須包含私密金鑰 my_client.key 和用戶端憑證 my_client.pem,才能成功申請。


相關資訊

如何針對已啟用自訂網域和相互 TLS 的 Amazon API Gateway 進行憑證鏈和自我簽署憑證問題進行疑難排解?

為 Amazon API Gateway 引入相互 TLS 身分驗證

如何對來自需相互 TLS 的 API Gateway 自訂網域名稱的 HTTP 403 禁止錯誤,進行疑難排解?

AWS 官方
AWS 官方已更新 3 個月前