通过格鲁吉亚诺拉 # 使用 Amazon S3 和 HTTPS 的简单站点托管 嗨伙计们! 在本教程中,我将向您展示如何使用自定义域在 AWS 上使用 HTTPS 托管静态网站。所有这一切都可以使用 AWS 免费套餐 但是,我们将要使用的服务确实会产生一些小额费用。一般来说,这些不应该超过 1 美元/月 我们将结合使用以下 AWS 服务: Ø Ø Ø Ø S3 Ø Ø Ø Ø 53 号公路 Ø 证书管理器 CloudFront *让我们开始吧!* 设置您的 S3 存储桶 首先,你需要 **两个 S3 存储桶都应将您的自定义域名与第二个匹配,包括 www 子域 桶 1: 桶 2: 第一个存储桶 (mywebsite.com) 是您网站的主要存储桶。这包含您静态网站的所有文件和资产 接下来我们为静态网站托管设置这个桶。您可以在存储桶的属性选项卡下找到它,我们将保留此处提供的默认值,并将站点索引设置为 index.html 我们还需要使此存储桶可访问,因为用户的浏览器需要访问存储桶的文件才能呈现网站。我们可以通过在 Permissions 选项卡下设置 Bucket Policy 来做到这一点 { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "Action": "s3:GetObject", "资源”:“MY_BUCKET_ARN”}]} 这是一个简单的策略,只允许对存储桶中的对象进行公共读取访问。现在,如果您前往存储桶的静态托管配置中定义的端点,您应该会看到您的网站 进步!但我们可以做得更好 第二个存储桶 (www.mywebsite.com) 我们将保留为空,但配置为使用 HTTP 作为协议重定向到我们的第一个存储桶(稍后我们将使其成为 HTTPS) 您的水桶现在可以使用了! 使用 Route53 配置域 因此,您的网站已启动并正在运行,但只能通过存储桶端点访问,而不能通过您的自定义域访问。让我们改变它 前往 **Route53 如果您已经在 Amazon Registrar 注册了您的域,您应该会看到已经为您设置了一个托管区域,其中包含两个记录集。一个用于名称服务器 (NS),一个用于 SOA 我们需要做的就是再创建两个记录集以指向 S3 存储桶端点 对于每个记录集: √ 类型:A √ IPv4 地址 Ø 别名:是 √ 别名目标:与您为名称设置的内容相匹配的 S3 网站端点 现在我们可以前往自定义 url 和 voil ! 我们快到那里了,但还有最后一件事我们丢失了啊啊啊 **注意如果您的域是在另一个域注册商(不是亚马逊)注册的,您将需要按照一些不同的步骤进行设置。通常,您需要添加一条 CNAME 记录,其中包含主要 S3 存储桶端点的值。 **故障排除 如果您删除了亚马逊在您首次注册域时创建的托管区域(我这样做是因为托管区域确实会产生一些费用),您需要从头开始创建一个新的托管区域 - 选择“创建托管区域”并设置域名,例如“我的网站”。 COMÉ - 这将为 NS 和 SOA 类型生成一些新的记录集 - 进入您的注册域并将名称服务器值更新为在新 NS 记录集中生成的值 申请证书 太棒了,该网站现在使用自定义 url 托管!但是我们只能通过HTTP协议访问它 我们应该始终确保我们的网站使用 HTTPS 协议进行保护。这可以保护我们的网站和用户免受恶意注入攻击并保证真实性 前往 AWS 控制台中的**证书管理器**并请求新的公共证书(这是免费的)。系统会提示您输入要保护的域名 在颁发证书之前,Amazon 需要能够验证您是否拥有指定的域 您可以从两种验证方法中进行选择:电子邮件或 DNS 电子邮件通常更简单,但您需要确保您可以访问用于注册域的电子邮件。或者,如果您使用 Amazon Registrar 和 Route53,则可以选择 DNS 方法。这需要您将一些特定的记录集添加到托管区域,但这对您来说大部分是自动的,所以它非常简单 验证后可能需要几分钟才能颁发证书 当一切都完成后,我们可以继续最后一步! 配置 CloudFront 对于最后一步,我们将使用 **CloudFront ** 允许我们使用新的 SSL 证书通过 HTTPS 为网站提供服务。 CloudFront 还通过将 Web 内容存储在多个边缘位置并从最近的边缘位置交付给用户来加快 Web 内容的分发 我们需要 **两个新的 Web 分布,每个 S3 存储桶一个。前往 AWS 控制台中的 CloudFront 并创建第一个 Web 分发 有很多设置可用于创建 Web 分发,但对于基础知识,我们只需要更改五个: 源域名:将此设置为其中一个存储桶的 S3 网站端点。重要提示:此字段将为您提供一些带有 S3 存储桶名称的自动完成选项。但是,使用这些可能会导致重定向到存储桶端点的问题。因此,而是直接使用存储桶端点。 Origin Id:当您输入 Origin Domain Name 时,它​​会为您填充。查看器协议策略:设置为“将 HTTP 重定向到 HTTPS”。备用域名:这应该与您指向的 S3 存储桶的名称相匹配。例如 âÃÂÃÂmywebsite.comâÃÂÃÂ。 SSL 证书:选择“自定义 SSL 证书”并从下拉列表中选择您的新证书 对第二个 S3 存储桶再次执行此操作 分发可能需要一段时间才能启动,所以在我们等待的同时,让我们完成最后的步骤 早在 **S3 转到您的辅助存储桶 (www.mywebsite.com),在“属性”选项卡和“静态网站托管”下将重定向协议设置为 HTTPS 最后,回到 **Route53 我们需要更新我们创建的自定义 A 记录,以现在针对 CloudFront 分配而不是 S3 存储桶。对于每条记录,更改别名目标并在下拉列表中选择可用的 CloudFront 分配 注意:同样,如果您使用的是其他 DNS 服务,您将需要从那里更新 CNAME 记录以指向 CloudFront 域名 你有它!您漂亮的网站现在可以在自定义域中访问并使用 HTTPS 服务! 谢谢阅读!我希望本指南有用且令人愉快,我很想知道您是否觉得它有帮助。