AWS lightsail 容器服务专用域 - "net::ERR_NAME_NOT_RESOLVED"

AWS lightsail container service private domain - "net::ERR_NAME_NOT_RESOLVED"

如何使用 AWS lightsail 的私有域将 https 请求从一个部署发送到另一个部署?

我使用两个 docker 图像创建了两个 AWS Lightsail 容器部署。我想将 https 请求从一个图像部署(“发送方”)发送到另一个图像部署(“接收方”)。当启用接收方的 public 端点时,这可以正常工作。但是,我不想将此服务公开给 public,而是使用 AWS Lightsail 的私有域来路由流量。

我的问题是当我尝试将 https 请求从“发送者”发送到“接收者”的私有域 (.service.local:) 我在“发送者”上得到 https://<service_name>.service.local:52020/tester/status net::ERR_NAME_NOT_RESOLVED' s html 页。根据 Lightsail docs(“私有域”部分),我的“与您的服务位于同一 AWS 区域的 Lightsail 资源”应该可以访问它。

我在 Whosebug 中找到了 。我使用我的区域尝试了这个答案,但失败了,因为 Lightsail 容器需要 https,而 .service.local 需要 http。创建Amazon Linux实例后,http请求成功,https请求失败。 (下面的屏幕截图)。同时,Lightsail 严格要求您使用 https。

如果我强制从 https 网页发送 http 请求,chrome 会产生 Mixed content: The page at ... was loaded over HTTPS but requested an insecure ... 错误。我可以通过使用 next.js api 路由来解决 https 问题,但这并不安全,因为 next.js api 路由是 public 可访问的。

这里有什么我可能遗漏的吗?

我已验证的内容:

提前致谢。

部分截图

我制作了两个 AWS Lightsail 容器,使用 next.js 的前端容器和使用 flask 的后端容器,使用以下步骤相互交谈:

  1. 在我要部署容器的区域使用“Amazon Linux”启动一个 Lightsail“实例”。从此“Amazon Linux”实例复制 [​​=10=]。更新 Dockerfile 以覆盖我的 docker.
  2. 中的 /etc/resolv.conf 文件
  3. 为了使用 http 而不是 https 发出 API 请求并解决 Mixed content: The page at ... was loaded over HTTPS but requested an insecure ... 错误,我使用 next.js' API route 来中继 API要求。因此,例如,前端容器上的页面将向同一容器上的 /api 发出 API 请求,而 /api 路由将向后端容器发出 http 请求。
  4. API 路由已通过安全措施正确编码,因此用户无法使用 API 路由访问后端容器中的随机端点。

https“页面”通常是混合内容,其中图片等资源是从 http 文件夹而不是“https”站点文件夹中提取的,因此获取此类资源的请求是 http,因为它是按位置配置的,所以它将被 http 调用以获取然后不被加密(请参阅服务器配置以了解需要通过该协议访问它的 https 文件夹位置)。

关于协议,来自另一个 post 的消息暗示并且可能是“私下”通信不是 public 的 Web 服务,因此此类通信需要使用 ssl:// 安全协议(同样使用 ssh://) NOT https:// secure public 两者的 Web 服务器协议都需要证书。 (猜一猜) ssl 可能是在本地私下使用的。

以下 AWS 链接建议使用不同的帐户来开发和服务。

https://aws.amazon.com/blogs/compute/a-guide-to-locally-testing-containers-with-amazon-ecs-local-endpoints-and-docker-compose/ https://aws.amazon.com/cli/