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

2 分的閱讀內容
0

我正在使用具有自定網域名稱的 Amazon API Gateway 進行相互 Transport Layer Security (TLS) 身分驗證。我收到憑證鏈或自我簽署憑證錯誤。我該如何對此錯誤進行疑難排解?

簡短描述

在開始之前,請確保您已經:

解決方案

如需叫用 Amazon API Gateway API 時的特定錯誤訊息清單,請執行類似下列內容的 curl 命令:

$ curl -v https://mtls.example.info/test-apigw-mtls --key self-signed.key --cert self-signed.pem:"example"

用戶端錯誤

"curl: (58) could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format? (curl:(58) 無法載入 PEM 用戶端憑證,OpenSSL 錯誤,錯誤:02001002:系統程式庫:fopen:沒有這類的文件或目錄,(找不到金鑰,錯誤的密碼片語或錯誤的檔案格式?)"

此錯誤表示 PEM 檔案的名稱、位置或檔案格式錯誤。例如,儲存在本機的憑證檔案格式為 .crt,但是在 API 請求中改用了 .pem 檔案。若要解決此問題,請確定本機用戶端憑證具有正確的格式和名稱。

"curl: (6) Could not resolve host: mtls.example.info (curl:(6) 無法解析主機:mtls.example.info)"

用戶端無法解析網域名稱。請確定網域名稱和組態正確無誤。

"url: (58) schannel: Failed to import cert file self-signed.pem, last error is 0x80092002 (url:(58) schannel:無法匯入憑證檔案自我簽署的 .pem,上一個錯誤是 0x80092002)"

此錯誤表示本機用戶端 .pem 檔案發生問題。請確定 .pem 檔案包含正確的名稱和格式。

"curl: (58) unable to set private key file: 'self-signed.key' type PEM (curl:(58) 無法設定私有金鑰檔案:'self-signed.key' 類型 PEM)"

此錯誤表示本機用戶端檔案發生問題。請確定 HTTP 請求中提供的私有金鑰未遺失且正確。

伺服器錯誤

"Access denied.Reason: self-signed certificate. (存取遭拒。原因:自我簽署憑證。)"

確認 API 請求中的自我簽署用戶端憑證未遭更改或損毀。

下列項目必須完全符合:

  • 用於在 Amazon S3 中簽署信任庫內自我簽署憑證 (bundle.crtbundle.pem) 的私有金鑰 (private.key) 模量。
  • 在 API 請求中 (client.crt) 所傳遞用戶端憑證的模量。

若要比較這兩個模量,請執行下列 OpenSSL 命令:

$ openssl rsa -noout -modulus -in private.key
$ openssl x509 -noout -modulus -in bundle.crt
$ openssl x509 -noout -modulus -in client.crt

注意:若要產生更短的雜湊值,方便比較,您可以使用 PIPE 傳送輸出模量至加密雜湊函數。例如:openssl sha1

$ openssl [operation] -noout -modulus -in [data] | openssl sha1

有效命令輸出範例:

2143831a73a8bb28467860df18550c696c03fbcb
2143831a73a8bb28467860df18550c696c03fbcb
2143831a73a8bb28467860df18550c696c03fbcb

若要確認資料完整性,請執行以下 diff 命令,確認沒有修改任何內容等級資料:

$ diff client.crt bundle.crt

相關資訊

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

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

AWS 官方
AWS 官方已更新 1 年前