【发布时间】:2021-04-02 04:39:40
【问题描述】:
到目前为止我做了什么:
- 我将 Laravel 应用上传到 Elastic Beanstalk
- 我在namecheap购买了一个域名:
domain.net - 我在 Route 53 中为 domain.net 设置了托管区域
- 我在我的域名部分 namecheap 的托管区域中输入了 NS 信息
- 我从证书管理器和关联的
domain.net获得了证书,我获得了*.domain.net的第二个证书 - 我在托管区域中为证书创建了 CNAME 记录(见下图)
- 我创建了一个 CloudFront 分配,在“源域名”下我放置了 Elastic Beanstalk URL,选择了“将 HTTP 重定向到 HTTPS”,在“备用域名”下输入了
domain.net,并为domain.net选择了 SSL 证书 - 我对@987654329@ 重复了上一步
- 然后在托管区域中,我为
domain.net创建了一个别名记录,指向domain.net的 CloudFront 分配,并为*.domain.net创建了另一个别名记录,指向各自的 CloudFront 分配(见下图)
问题
我在网站上获得了domain.net 和www.domain.net 的 SSL 连接,即使从 HTTP 到 HTTPS 的重定向也有效。但是,当我单击导航菜单中的链接时,例如“关于”,我得到的页面是 NOT domain.net/about,但 http://myenvironment-env.eba-zxsw5igy.us-east-1.elasticbeanstalk.com/about 带有“不安全”连接。但是,当我在浏览器中手动输入 URL 时,例如 domain.net/about,我得到了正确的 URL。我可能做错了什么?
更新
在没有 SSL (+CloudFront) 的 Elastic Beanstalk 上使用相同的 Laravel 应用程序代码配置 Route 53 可以正常工作。我可以访问网站上的任何链接,它们正确解析为domain.net/about 等。
也许我没有将 CloudFront 正确连接到 Elastic Beanstalk?同样,这就是我在 CloudFront 分发中所做的:在“源域名”下,我放置了 Elastic Beanstalk URL,我选择“将 HTTP 重定向到 HTTPS”,在“备用域名”下输入 domain.net 并选择 SSL 证书对于domain.net
【问题讨论】:
-
我很确定这个问题与 AWS 无关,而是与您在应用程序中构建链接的方式有关。
-
我也读过,但问题是,我之前使用相同的应用程序代码将我的域名链接到 EBS,并且链接在正确的 URL 中解析。不幸的是,我删除了旧的托管区域并且没有任何设置(不应该这样做)。现在我只想用 SSL 重新设置它。问题是否在于在托管区域中为 EBS URL 创建记录?我一无所知。
-
不,您需要在服务器上配置您的软件以了解它应该用于建立链接的域名。这不是 Route53 问题。
-
我不知道这是否会回答您的问题,因为涉及到许多活动部件。如果您还没有,请查看此文档。也许它有助于解决问题:aws.amazon.com/de/premiumsupport/knowledge-center/…
-
感谢您的回答,但我不想使用负载均衡器,而是使用 CloudFront 和 Elastic Beanstalk。
标签: amazon-web-services amazon-elastic-beanstalk amazon-cloudfront amazon-route53 aws-certificate-manager