我试图弄清楚如何使用 HTTPS 调用我的弹性 beanstalk 环境。最终,我希望能够使用 API 网关将 HTTPS 请求转发给它*。
在弹性 beanstalk 控制台中,我将负载均衡器配置为在端口 443 和实例端口 80 上使用我网站的 SSL 证书 (mywebsite.com)(无论这意味着什么 - 我关注的是 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html )。
在连接 API 网关之前,我首先尝试调用我的弹性 beanstalk 端点。更改 http://
至https://
,使用我得到的 postman
Error: Hostname/IP does not match certificate's altnames: Host: myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com. is not in the cert's altnames: DNS:*.mywebsite.com
没有骰子。然后我想,如果请求来自我网站的域,它可能会起作用。所以我尝试配置 API 网关,但我只是得到一个 500 内部服务器错误。 (注意如果我将 API 网关中的
endpoint URL
从 https
更改为 http
一切都很好)。那么我需要做什么呢?我尝试阅读此 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html ,但仅达到我上面描述的程度。我觉得我确实需要一个证书,但是当我尝试使用亚马逊的证书管理器为 myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com 生成证书时,我无法验证它(两个电子邮件都失败了和 DNS 认证)。我想我不完全明白我需要做什么/看大图。有人可以帮助我,最好有具体说明。
*实际上,这本身就是一个问题。如果我的 API 网关端点是 HTTPS,那么 API 网关是否可以安全地使用 HTTP 调用我的弹性 beanstalk 环境,因为我们已经在 AWS 中?
谢谢
最佳答案
I tried using Amazon's certificate manager to generate a certificate for myService-prod.eba-p3t3saxf.ap-southeast-1.elasticbeanstalk.com
您无法为此域生成 SSL 证书。这是 AWS 拥有和管理的域。要获得正确的有效 SSL 证书,您必须拥有 您自己的域名你控制的。
从您的帖子中不清楚您是否真的有一个域
mywebsite.com
或不。如果没有,并且您想将自己留在 AWS 中,您可以使用 Route53 to buy a domain你要哪个。但是任何域名提供商都可以。拥有自己的自定义域后,您可以设置 hosted zone在 R53 中,point it到您的 EB 的负载均衡器。设置好域后,您可以使用 AWS ACM 为您的域颁发有效的公共(public)免费 SSL 证书并将其部署在负载均衡器上。
在您的 API 网关中,您将使用您的 EB 域进行 HTTP 集成,而不是 AWS EB 默认域。
关于amazon-web-services - API 网关使用 HTTPS 调用我的弹性 beanstalk 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65878051/