SSL 不适用于 AWS 上的 Route 53 域

Posted

技术标签:

【中文标题】SSL 不适用于 AWS 上的 Route 53 域【英文标题】:SSL is not working for Route 53 domain on AWS 【发布时间】:2020-04-13 18:24:43 【问题描述】:

我已在 AWS Elastic Beanstalk Linux 实例上部署了我的 Django 应用程序。我使用 Route 53 将其指向来自 GoDaddy 的自定义域。

现在我想为我的网站使用 SSL。 我不想为 SSL 使用负载均衡器,因为我只使用 1 个实例,而且每月支付 18 美元的成本很高。 所以我所做的是通过在我的 .ebextensions 文件夹中添加 00_apache_ssl.config 文件来使用 Let's Encrypt SSL。

我已按照this 教程使用 SSL。我的 SSL 非常适合 Elastic Beanstalk URL。但问题是它不适用于我的自定义域。

我的 EB 网址显示安全连接,而它的自定义域显示不安全连接。 我缺少什么?我还需要对 Route 53 记录集进行一些更改吗?

谢谢。

编辑 1:我的自定义域显示 Let's encrypt certificate as Invalid Certificate。

【问题讨论】:

自定义域的证书存储在哪里? @MatusDubrava 我还没有生成它。我是否还需要按照该教程为自定义域生成证书? 关于公钥加密如何工作的讨论会相当冗长,但长话短说 - 没有证书 = 没有加密。 “服务”HTTPS 的设备需要访问私钥才能建立安全连接,所以是的,您需要拥有该域的证书,如果您计划公开提供内容,则不能只生成它。您需要从受信任的证书颁发机构获得(购买)此类证书。我会说您可以从 AWS ACM 免费获得 if,但这不成立,因为此类证书只能与 LoadBalancer 和/或 CloudFront 一起使用。 @MatusDubrava 好的,我明白了。因此,如果我从 GoDaddy 或其他地方购买 SSL,您能否解释一下或提供一些有关如何使用它的资源?我已经在互联网上搜索了它,但找不到合适的资源。谢谢。 对不起。我不知道您的特定 Web 服务器的确切资源,但您应该通过谷歌搜索 apache ssl configuration 很容易找到它。实际配置可能需要一些 linux 管理员技能。 【参考方案1】:

根据您的教程,您的elasticbeanstalk 域而不是您的自定义域获得了 SSL 证书。

如果您想通过使用 https 的自定义域访问您的网站(例如 https://my-cust-doamin.com),您必须为您的域获取证书。

您可以从任何销售 SSL 证书的提供商处获取 SSL 证书。

注意:您还可以获得通配符证书 (*.my-cust-domain.com),该证书可用于您的任何子域。

参考: https://rickchristianson.wordpress.com/2013/10/31/getting-a-django-app-to-use-https-on-aws-elastic-beanstalk/

【讨论】:

是的。 @Matus 在 cmets 部分告诉我同样的事情。你能给我一些同样的资源吗?谢谢。 你能分享00_apache_ssl.config文件的内容吗?我认为您只需要添加新的证书文件并更新此文件中的引用即可。

以上是关于SSL 不适用于 AWS 上的 Route 53 域的主要内容,如果未能解决你的问题,请参考以下文章

AWS Route53上的MXE记录

域转移后 AWS Route 53 上的域传播错误

Terraform 与 A​​PI-Gateway、Route53 和 SSL 认证相互依赖问题

elb 上的 https 无法与 53 号路由设置一起使用

AWS Route53 DNS 故障转移设置上的临时反转主要 <=> 次要

Docker + Gunicorn + Nginx + Django:将非 www 重定向到 AWS Route 53 上的 www