Docker搭建Let's Encrypt并连接阿里云自动签发h
2021-10-23 本文已影响0人
运维贼船
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,而如果我们直接使用HTTP来架设自己的网站的话是并不安全的。
Let's Encrypt可以提供免费的证书,如果能通过Let's Encrypt + 阿里云DNS来验证域名,那个样可以实现自动签发证书了。Let's Encrypt连接阿里云可以使用官方提供的api工具。
配置阿里云
1.首先在阿里云域名管理页面解析一个域名,记住你的A记录的值,比如我这里解析了一个域名test.aoarasi.com到我的云服务器。
image
2.在登录的阿里云账户头像处找到AccessKey管理,然后点击创建AccessKey。
image
image
创建时需要验证一下手机号,之后就能成功生成,我们把AccessKey保存到本地或下载csv文件(千万注意不要随意泄露!)。
image
搭建Let's Encrypt
这里假设你已经安装好docker环境,使用以下命令,拉取Let's Encrypt镜像到本地并运行
docker run \
-itd \
--cap-add=NET_ADMIN \
--name=letsencrypt \
--net=host \
-v /opt/docker/letsencrypt/:/config:rw \
-e PGID=1000 \
-e PUID=1000 \
-e EMAIL=aoarasi@88.com \
-e URL=aoarasi.com \
-e SUBDOMAINS=test \
-e ONLY_SUBDOMAINS=true \
-e DHLEVEL=2048 \
-e VALIDATION=dns \
-e DNSPLUGIN=aliyun \
-p 80:80/tcp \
-p 443:443/tcp \
-e TZ=Asia/Shanghai \
linuxserver/letsencrypt
这个命令需要主要修改以下几个地方,其它未提及到的参数自行对应修改。
-e EMAIL=aoarasi@88.com #这里修改为自己的邮件地址
-e URL=aoarasi.com #这里修改为自己的顶级域名
SUBDOMAINS=test #这里修改为二级域名的前缀,比如我前面解析的a记录为test
-p 80:80/tcp #这里根据情况修改,:前是主机端口,后面为映射容器端口
-p 443:443/tcp #同上
修改完后,拷贝上面的代码运行。注意确保你所设置的端口没有被其它程序占用。
image image
修改阿里aliyun.ini文件,将文件中的access_key和secret为之前我保存的。
[root@mx dns-conf]# vim /opt/docker/letsencrypt/dns-conf/aliyun.ini
image
修改完后,我们重启一下letsencrypt应用,使配置生效。
docker restart letsencrypt
# 查看启动情况
docker logs -f letsencrypt
直到日志显示server ready时,表示已经成功的申请到了证书,这时使用ctrl+c组合键退出。
image
访问
使用我们前面解析的域名test.aoarasi.com来访问测试,发现已经正常使用https解析了。
查看证书详情,默认给我们三个月的有效期。
image
至此!
下期我们将分析如何使用Let's Encrypt来反向代理其它应用和使用自动续期功能,欢迎关注!