為 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 主控台,然後選擇自訂網域名稱

2.    在網域名稱中輸入您的網域名稱,然後選擇建立

3.    在網域名稱中輸入您的網域名稱。

4.    對於最低 TLS 版本,請選擇 TLS 1.2

5.    啟用相互 TLS 驗證

6.    對於信任存放區 URI,請輸入先前建立的 Amazon S3 URI。

7.    對於端點組態,請選擇區域

8.    在憑證類型中,選擇您的憑證類型,然後選擇建立網域名稱

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

10.    選擇新增對應

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

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

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

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

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

停用預設端點

依預設,用戶端可以使用 API Gateway 為您的 API 產生的 execute-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 官方已更新 2 年前