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到我的云服务器。
2.在登录的阿里云账户头像处找到AccessKey管理,然后点击创建AccessKey。
创建时需要验证一下手机号,之后就能成功生成,我们把AccessKey保存到本地或下载csv文件(千万注意不要随意泄露!)。
搭建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来反向代理其它应用和使用自动续期功能,欢迎关注!