API Gateway 自定义域证书错误

Chr*_*ons 10 ssl amazon-web-services aws-api-gateway

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

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

当我跑

curl https://82cgbm6s93.execute-api.us-east-1.amazonaws.com/prod
Run Code Online (Sandbox Code Playgroud)

我得到

{"message":"Missing Authentication Token"}
Run Code Online (Sandbox Code Playgroud)

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

curl https://vitalservices-3.docriot.com -k
Run Code Online (Sandbox Code Playgroud)

但是如果我放弃 -k 并运行

curl https://vitalservices-3.docriot.com
Run Code Online (Sandbox Code Playgroud)

我得到

curl: (60) SSL certificate problem: Invalid certificate chain . . .
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

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

我附上了当我在 url 栏中单击“不安全”并查看证书信息时所看到的屏幕截图。在此处输入图片说明

Joh*_*ley 2

curl 显示的错误不是很具体,适用于许多证书问题。就您而言,您可能缺少该文件cacert.pem,该文件是来自 Mozilla 的公共证书颁发机构的证书捆绑包。

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

cacert.pem

有关 cacert.pem 的更多信息