如何使用 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