API网关自定义域证书错误

问题描述 投票:0回答:4

我正在尝试使用自定义域设置区域 API 网关,但遇到了涉及 SSL 证书的问题。这是我所做的:

  • 使用 ACM,为 importantservices-3.docriot.com 创建证书。
  • 在API网关中,创建一个区域自定义域名--vitalservices-3.docriot.com--为其分配vitalservices-3.docriot.com证书,并添加从“/”到“vitalservices-3”的基本路径映射:产品”。
  • 在 docriot.com 的 Route53 托管区域中,创建了一条 CNAME 记录,将 importantservices-3.docriot.com 映射到 82cgbm6s93.execute-api.us-east-1.amazonaws.com。该记录具有基于延迟的路由策略,但目前它是 importantservices-3.docriot.com 的唯一记录。

当我跑步时

curl https://82cgbm6s93.execute-api.us-east-1.amazonaws.com/prod

我明白了

{"message":"Missing Authentication Token"}

这正是我所期望的,因为 API 需要 Cognito 身份验证。当我使用“-k”选项忽略证书错误并运行时,我收到相同的消息

curl https://vitalservices-3.docriot.com -k

但是如果我删除 -k 并运行

curl https://vitalservices-3.docriot.com

我明白了

curl: (60) SSL certificate problem: Invalid certificate chain . . .

我该如何解决这个问题?

编辑:我只是在我的 OS X 机器上使用curl,因为我认为这是一种更简单的说明错误的方法。当我在 Chrome 浏览器中访问这些 URL 时,我会遇到类似的行为。如果输入 https://vitalservices-3.docriot.com,我会在 URL 栏中看到红色警告三角形,并且页面显示“攻击者可能试图窃取您的信息......”。然后,如果我选择无论如何查看页面的选项,浏览器都会显示一个带有文本“{”message”:“Missing Authentication Token”}”的页面,就像我使用“curl -k”时一样。因此,我不认为问题是我的机器不信任证书颁发机构。

我附上了当我在网址栏中单击“不安全”并查看证书信息时所看到的屏幕截图。

amazon-web-services ssl aws-api-gateway
4个回答
2
投票

curl 显示的错误不是很具体,适用于许多证书问题。就您而言,您可能缺少文件

cacert.pem
,它是来自 Mozilla 的公共证书颁发机构的一组证书。

您可以从 CURL 的网站下载 cacert.pem:

cacert.pem

有关 cacert.pem 的更多信息


2
投票

您需要确保两件事。

  1. API网关与您的自定义域名相同。区域或边缘。
  2. 您已为该域配置了正确的 DNS。

您在 ACM 中的证书应显示与您的 API 网关自定义域相同的允许域。

我们遇到了同样的问题,问题是 DNS 记录指向 API 网关端点。不发送至自定义域名的目标域名端点。因此,证书将来自 *.execute-.amazonaws.com。


0
投票

您从 API 网关自定义域下拉列表中选择的证书不满足您所访问的 DNS。 ACM 仅 validservices-3.docriot.com 或 *.docriot.com 有效。尝试使用提到的更改 ssl 即可解决此问题。


0
投票

我最近遇到了同样的问题。我发现人们常犯的错误之一是您的托管区域中有一条

A
记录指向您的 stage url 中的域名,这是 不正确

A
记录应指向您在API网关控制台创建自定义域名映射时收到的API网关域名

之后证书生效并且浏览器显示正确的

Issued To

© www.soinside.com 2019 - 2024. All rights reserved.