首页 > 其他分享 >如何使用 Let's Encrypt 和 AWS Route 53 创建证书

如何使用 Let's Encrypt 和 AWS Route 53 创建证书

时间:2022-09-02 08:25:17浏览次数:105  
标签:Encrypt 证书 Route AWS pem letsencrypt route53 certbot

如何使用 Let's Encrypt 和 AWS Route 53 创建证书

在本文中,我将告诉您如何使用免费的证书颁发机构创建 SSL/TLS 证书,例如 让我们加密 .

然后将使用此证书,以便我们的 Web 应用程序可以使用 HTTPS 协议。

假设我们的示例域已在 AWS Route 53 中配置。

另外,我们已经安装了 Docker。

权限

您需要做的第一件事是创建 准入政策 AWS Route 53:

 {  
 “版本”:“2012-10-17”,  
 "Id": "certbot-dns-route53 示例策略",  
 “陈述”: [  
 {  
 “效果”:“允许”,  
 “行动”: [  
 "route53:ListHostedZones",  
 “route53:获取更改”  
 ],  
 “资源”:[  
 “*”  
 ]  
 },  
 {  
 “效果”:“允许”,  
 “行动” : [  
 “route53:更改资源记录集”  
 ],  
 “资源”:[  
 “arn:aws:route53:::hostedzone/ **你的主机区ID** "  
 ]  
 }  
 ]  
 }

可以想象,他们将不得不更换 你的主机区ID 使用您的托管区域的 ID。

下一步是将此策略附加到 IAM 用户。重要的是您手头有该用户的访问密钥 ID 和秘密访问密钥,因为它们将在后面的步骤中使用。

重要的是,在证书生成过程结束时,我们停用此权限策略。如您所见,与其关联的用户可以修改与域关联的记录。

Docker 镜像

为了生成证书,我们将使用来自的公共 docker 镜像 证书机器人 离开 53 号公路。

我想澄清一下,其他插件还有其他 certbot docker 镜像。 这里 你可以看到所有可用的。

使用以下命令,我们可以生成我们的证书:

 docker run -it --rm --name certbot \  
 --env AWS_ACCESS_KEY_ID=YOURACCESSKEYID \  
 --env AWS_SECRET_ACCESS_KEY=YOURSECRETKEY \  
 -v "/home/ubuntu/letsencrypt:/etc/letsencrypt" \  
 -v "/home/ubuntu/letsencrypt:/var/lib/letsencrypt" \  
 certbot/dns-route53 certonly \  
 -d weareshifters.com \  
 -d *.weareshifters.com \  
 -m[ [email protected]](/cdn-cgi/l/email-protection#a9c1ccdbc7c8c7cee9dac1c0cfddc887c5c8) \  
 --同意\  
 - 服务器[ https://acme-v02.api.letsencrypt.org/directory](https://acme-v02.api.letsencrypt.org/directory)

泊坞窗运行选项

  • -它: 交互模式。
  • - R M : 清理。
  • - 姓名 : 标识容器的名称。
  • --env : 用于传递环境变量。我们设置的第一个变量是 AWS_ACCESS_KEY_ID。
  • --环境: 对于我们需要添加的每个新环境变量,我们将使用一个新选项 - -env .使用的第二个是 AWS_SECRET_ACCESS_KEY。
  • -v : 用于挂载卷。它的格式为 [host-src]:[container-dest]。
  • -v: 对于我们需要挂载的每个新卷,我们将使用一个新选项 -v .
  • certbot/dns-route53 :我们将使用的存储库/Docker 映像的名称。
  • 仅证明: 这是我们要在容器内执行的命令。

证书选项

  • -d: 用于我们将要使用证书的域。
  • -d: 相同的证书也可用于子域。在这种情况下,指定通配符 (*),它将适用于任何子域。您还可以指定单个子域,例如: admin.weareshifters.com
  • -m: 接收通知的电子邮件地址。 (例如,关闭到期日期)。
  • --同意: 接受 ACME 服务器订阅协议。
  • - 服务器: ACME 目录资源 URI。

执行

命令执行后 码头运行, 在上一步中描述的,我们将在控制台中收到以下信息:

 您希望如何通过 ACME CA 进行身份验证?  
 - — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —  
 1:使用 DNS TXT 记录获取证书(如果您使用 AWS Route53 进行  
 域名系统)。 (dns-route53)  
 2:启动一个临时网络服务器(独立)  
 3:将文件放在webroot目录下(webroot)  
 - — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —  
 选择适当的数字 [1–3] 然后 [enter](按 'c' 取消):

我们选择选项 1,几秒钟后,如果一切按预期进行,我们将收到证书已生成的确认:

 顺利拿到证书。  
 证书保存在:/etc/letsencrypt/live/weareshifters.net/fullchain.pem  
 密钥保存在:/etc/letsencrypt/live/weareshifters.net/privkey.pem  
 此证书将于 2022 年 11 月 24 日到期。  
 这些文件将在证书更新时更新。

可以看出,这些生成的证书有效期为 90 天。虽然更新它们非常简单。将在下一篇文章中解释。

我们导航到作为卷安装的文件夹,以查看生成的文件:

 cd /home/ubuntu/letsencrypt/live/weareshifters.net

如果收到任何权限错误,我们会修改目录权限并递归地将其应用于其所有内容:

 sudo chmod -R 777 /home/ubuntu/letsencrypt

我们列出文件夹中的文件:

 ls -a

结果,我们将找到 certbot 生成的文件:

 . .. cert.pem chain.pem fullchain.pem privkey.pem 自述文件

.pfx 文件

如果我们需要生成扩展名为 .pxf 的证书,我们将通过执行以下命令来完成:

 sudo openssl pkcs12 -export -out weareshifters.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem

下一步是什么?

在接下来的几周内发布的下一篇文章中,我将展示如何在托管在 Docker 容器中的 ASP.NET MVC 应用程序中安装此证书。

参考书目

[

欢迎来到 certbot-dns-route53 的文档! - certbot-dns-route53 0 文档

编辑描述

certbot-dns-route53.readthedocs.io

](https://certbot-dns-route53.readthedocs.io/en/stable/)

[

Docker 运行参考

Docker 在隔离的容器中运行进程。容器是在主机上运行的进程。主机可能是本地的或…

docs.docker.com

](https://docs.docker.com/engine/reference/run/)

[

/docs/man1.1.1/man1/openssl-pkcs12.html

openssl-pkcs12, pkcs12 - PKCS#12 文件实用程序 openssl pkcs12 [-help] [-export] [-chain] [-inkey file_or_id] [-certfile...

www.openssl.org

](https://www.openssl.org/docs/man1.1.1/man1/openssl-pkcs12.html)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/10888/07220208

标签:Encrypt,证书,Route,AWS,pem,letsencrypt,route53,certbot
From: https://www.cnblogs.com/amboke/p/16648468.html

相关文章