Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构(CA),我们可使用 Certbot 官方工具从其申请免费 HTTPS 证书。为了不污染主机环境,我们可使用 Docker Certbot 证书申请方案。
申请证书
执行以下命令,即可创建一个 certbot
容器来申请 HTTPS 证书。具体使用时,请替换命令中的 *.jiahonzheng.com
。
docker run -it --rm \
--name certbot \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
certbot/certbot certonly \
--preferred-challenges dns \
--manual \
-d *.jiahonzheng.com
申请证书时,Certbot 需验证 _acme-challenge.${domain}
域名的 TXT 记录。进行域名解析的配置后,由于缓存的原因,TXT 记录无法立马生效,可通过以下命令查询记录是否生效。
nslookup -type=txt _acme-challenge.jiahonzheng.com
部署证书
HTTPS 证书以 PEM
文件存储,具体存储在 /etc/letsencrypt/${domain}
目录中,其中公钥文件名为 fullchain.pem
,私钥文件名为 privkey.pem
。由于文件权限的原因,在查看证书内容时,需使用 sudo
命令。
# 查看公钥内容
sudo cat /etc/letsencrypt/live/jiahonzheng.com/fullchain.pem
# 查看私钥内容
sudo cat /etc/letsencrypt/live/jiahonzheng.com/privkey.pem