amazon-ec2 - 在 AWS 内部/私有服务器上设置 SSL
问题描述
我们正在尝试在 AWS 上设置公共 API 网关,但受到 SSL 要求的困扰。我们的网关旨在成为隐藏内部资源的公开 API 网关。内部资源都在 EC2 实例上运行。目的是内部资源不会有公共 IP 或弹性 IP 可供世界访问。当我们尝试使用 Lets Encrypt 设置 SSL 证书时,我们会收到一个反馈,即 amazonaws.com 不是允许的域。我们也尝试过 OpenSSL,但在尝试将 API 网关连接到内部服务时收到非描述性的“未指定 SSL 引擎错误”消息。
这是我们要设置的 Stick 框架
Public Side | Private Side
|
{ Public Internet } <---> ( API GATEWAY ) <----> #endpoint {GET} /users [EC2 Instance 1: https://ip-10-3-X-1.ca-central-1.compute.internal]
#endpoint {GET} /posts [EC2 Instance 2: https://ip-10-3-X-2.ca-central-1.compute.internal]
#endpoint {POST} /update [EC2 Instance 3: https://ip-10-3-X-3.ca-central-1.compute.internal]
在这种情况下,EC2 实例是运行微服务的容器。由于各种原因,我们没有使用 Lambda 函数,也没有兴趣这样做。
设置 API 网关以访问 EC2 实例的最佳方法是什么?
我们最大的问题是向我们的 EC2 端点颁发一个 API 网关将接受的 SSL 证书。当我们使用 AWS Certificate Manager 生成私有证书时,API Gateway 存在自签名问题。
我们不希望这些内部服务器完全暴露在公共 DNS 上。
我们是否需要设置一个内部 DNS 服务器来向像instancename.example.internal这样的 FQDN 颁发证书,然后向这些域颁发证书,并将 API 网关指向那个?
在此先感谢您的帮助!
解决方案
推荐阅读
- r - 如何将多个空列添加到空数据框中?
- java - “系统找不到指定的文件路径”错误 - BlueJ
- c++ - 如何在linux中使用netbeans 8.2生成可执行文件
- c# - 是List的每个元素
盒装? - flutter - 如何使用 FIrebase 性能通过屏幕或上下文来衡量
- android - 创建新项目后,Android Studio 4.1.1 中的 groovy.lang.MissingPropertyException 问题
- javascript - 如何像 redux 一样在 React 中使用 urql 数据?
- android - Android Studio 错误“E/OpenGLRenderer:GL 错误:GL_INVALID_VALUE”
- vue.js - 在离子模板中显示来自异步函数的变量
- python - 使用重复键 python 遍历字典