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到我的云服务器。
搭建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 #同上
修改完后,拷贝上面的代码运行。注意确保你所设置的端口没有被其它程序占用。
修改阿里aliyun.ini文件,将文件中的access_key和secret为之前我保存的。
[root@mx dns-conf]# vim /opt/docker/letsencrypt/dns-conf/aliyun.ini
修改完后,我们重启一下letsencrypt应用,使配置生效。
docker restart letsencrypt # 查看启动情况 docker logs -f letsencrypt
直到日志显示server ready时,表示已经成功的申请到了证书,这时使用ctrl+c组合键退出。
访问
使用我们前面解析的域名test.aoarasi.com来访问测试,发现已经正常使用https解析了。
查看证书详情,默认给我们三个月的有效期。
至此!
下期我们将分析如何使用Let's Encrypt来反向代理其它应用和使用自动续期功能,欢迎关注!