我正在尝试使用自定义域设置区域 API 网关,但遇到了涉及 SSL 证书的问题。这是我所做的:
当我跑步时
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”时一样。因此,我不认为问题是我的机器不信任证书颁发机构。
curl 显示的错误不是很具体,适用于许多证书问题。就您而言,您可能缺少文件
cacert.pem
,它是来自 Mozilla 的公共证书颁发机构的一组证书。
您可以从 CURL 的网站下载 cacert.pem:
您需要确保两件事。
您在 ACM 中的证书应显示与您的 API 网关自定义域相同的允许域。
我们遇到了同样的问题,问题是 DNS 记录指向 API 网关端点。不发送至自定义域名的目标域名端点。因此,证书将来自 *.execute-.amazonaws.com。
您从 API 网关自定义域下拉列表中选择的证书不满足您所访问的 DNS。 ACM 仅 validservices-3.docriot.com 或 *.docriot.com 有效。尝试使用提到的更改 ssl 即可解决此问题。