使用 Docker 签发免费的泛域名 SSL 证书

什么是 SSL 证书?

SSL 证书(SSL Certificates)又叫服务器证书,是由受信任的根证书颁发机构颁发。能够让网站与用户之间采用 SSL 协议进行通信。SSL 证书部署到服务器后,服务器端的访问将启用 HTTPS 协议。网站将会通过 HTTPS 加密协议来传输数据,可帮助服务器端和客户端之间建立加密链接,从而保证数据传输的安全。

证书按照验证信息的不同,分为以下几种:
DV SSL 证书(域名验证):只验证域名所有权。
OV SSL 证书(组织验证):验证域名所有权和申请组织的真实身份。
EV SSL 证书(扩展验证):最高级别验证,验证域名所有权、企业真实合法信息、电话回访等等验证。

作为个人服务,一般使用免费的就好,例如使用比较流行的 Let’s Encrypt 签发的证书

证书的签发可以使用由国人团队维护的 acme.sh 脚本,它拥有构建好的 Docker 镜像,这里我是用了 Docker 镜像来执行证书的申请,每次只需要重启运行一下镜像就行

申请证书

镜像是:neilpang/acme.sh:2.9.0

CMD 命令是:–issue –dns dns_dp -d *.dev.tabll.cn

由于使用的是 dns_dp 验证域名的所有权(即通过在域名解析中自动添加一条解析记录,以达到验证域名所有权的目的),所以在 ENV 中指定需要你的 DP_Id 和 DP_Key,这在你的 DNS 服务商里可以得到

运行完成之后就会在 /acme.sh 文件夹中找到签发后的证书了

注意

证书的有效期是 3 个月,所以需要定时记得重新签发,可以写一个任务定时执行它