我正在尝试使用我的 elastic beanstalk 环境调试一种情况,在这种情况下,我的 eb 环境名称成功识别了我来自证书管理器的证书并抛出错误,因为我的证书是针对我的域而不是 elasticbeanstalk。 com,但是当我尝试访问我的站点 beta.mysite.com
时,我注意到它仍在使用 http 而不是 https。因此,我试图确定这是否是我的 CNAME 记录、我的 expressjs 设置或我的负载均衡器的问题。这是我当前的设置:
SSL ID:.*mysite.com
- 状态:已发布
- 正在使用:是
负载均衡器:
- 监听器端口:80
- 协议(protocol):HTTP
- 安全监听器端口:443
- 协议(protocol):HTTPS
- 跨区域负载平衡:未选中
SSL 证书 ID:.*mysite.com
其余选项默认设置
别名:
- 名称:beta.mysite.com
- 别名:无
- TTL:300 秒
- 值:beta-app.us-east-1.elasticbeanstalk.com
- 路由策略:简单
ExpressJS:
- 我认为所有这些过程都应该存在于服务器实例上而不是后端代码中,因此我没有添加任何模块或选项来使用 https。
最佳答案
but when I try to access my site at beta.mysite.com I notice that it is still using http and not https.
那只是因为你去了http://beta.mysite.com而不是 https://beta.mysite.com注意如何同时访问 http://stackoverflow.com和 https://stackoverflow.com ,这就是您的应用程序现在的配置方式。
安装 SSL 证书不会自动导致端口 80 上的 HTTP 请求重定向到端口 443 上的 HTTPS 请求。您需要在 Elastic Beanstalk 的 Nginx 服务器或 ExpressJS 服务器代码中添加一些配置选项,以检测 HTTP 请求,并将它们重定向到 HTTPS,例如 this .
关于amazon-web-services - Elastic Beanstalk - ExpressJS - Https 证书未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390293/