Skip to content

如何解决 API Gateway 生成的 SSL 证书的相关错误?

2 分钟阅读
0

我想解决 Amazon API Gateway 生成的安装在后端系统上的自签名和过期的 SSL 证书的相关问题。

解决方法

测试 HTTP 代理集成

使用 API Gateway 控制台测试无效的 SSL 证书。有关无效的 SSL 证书的列表,请参阅 Bad SSL 网站上的 badssl.com

完成以下步骤:

  1. 创建一个名为 /selfsigned 的资源。
  2. 在资源上创建 GET 方法。
  3. 使用 URL 配置 HTTP 代理集成
  4. 打开 API Gateway 控制台
  5. 测试 API。
  6. 使用名为 /expiredcert 的资源重复上述每个步骤,然后使用名为 /untrustedRootCA 的另一个资源重复上述每个步骤。

对于名为 /selfsigned 的资源,您会收到以下错误消息:

“Thu Dec 15 16:05:05 UTC 2022: Sending request to https://self-signed.badssl.com/
Thu Dec 15 16:05:05 UTC 2022: Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

对于名为 /expiredcert 的资源,您会收到以下错误消息:

“Thu Dec 15 16:06:02 UTC 2022 : Sending request to https://expired.badssl.com/
Thu Dec 15 16:06:02 UTC 2022 : Execution failed due to configuration error: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed”

对于名为 /untrustedRootCA 的资源,您会收到以下错误消息:

“Thu Dec 15 16:06:28 UTC 2022: Sending request to https://untrusted-root.badssl.com/
Thu Dec 15 16:06:28 UTC 2022: Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

解决配置错误

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

当网络负载均衡器具有 TLS 侦听器时,网络负载均衡器会执行 TLS 终止并创建与目标的另一个连接。附加到网络负载均衡器的证书必须满足所有要求。

在与目标进行 SSL 握手期间,网络负载均衡器不执行证书验证。网络负载均衡器接受您安装在目标实例上的过期或自签名证书。网络负载均衡器和目标组在虚拟私有云 (VPC) 内进行链接。如果网络负载均衡器使用 TCP 侦听器,则 TLS 握手将端到端进行。在这种情况下,后端应用程序必须满足 SSL 要求。

在通过 VPC 链接集成进行 SSL 握手期间,API Gateway 支持服务器名称指示 (SNI)。

如果后端网络负载均衡器具有证书颁发机构 (CA) 未颁发的自签名证书或私有证书,则您会收到以下错误消息:

“Execution failed due to configuration error: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

要解决此问题,请运行以下 update-integration AWS CLI 命令,并在集成的 tlsConfig 对象中将 insecureSkipVerification 设置为 true

aws apigateway update-integration --rest-api-id EXAMPLE-REST-API-ID --resource-id EXAMPLE-RESOURCE-ID --http-method GET --patch-operations "op='replace',path='/tlsConfig/insecureSkipVerification',value=true"

**注意:**请将 EXAMPLE-REST-API-IDEXAMPLE-RESOURCE-ID 替换为您的值。

相关信息

生成和配置 SSL 证书以用于 API Gateway 中的后端身份验证

AWS 官方已更新 2 个月前