1.运行证书服务docker
docker run --entrypoint="/bin/sh" -it --name certbotsh certbot/certbot:latest
2.在容器里运行certbot命令
certbot certonly --manual --preferred-challenges dns- --agree-tos -d "quchangguan.cn" -d "*.quchangguan.cn" --server https://acme-v02.api.letsencrypt.org/directory
--manual 使用交互式或脚本钩子的方式获取证书
--preferred-challenges 使用 DNS 方式校验域名所有权
--agree-tos 同意ACME服务器的订阅协议
-d 域名列表,可多个。第一个是主域名
--server 服务器,默认https://acme-v01.api.letsencrypt.org/directory
3.依次按照提示填写信息和执行操作,其中会提示需要添加TXT记录的dns解析
4.最后申请完成,会提示文件路径和证书使用期限
5.生成的证书文件。cert.pem申请的服务器证书文件,privkey.pem服务器证书对应的私钥,chain.pem除服务器证书外(ca证书),浏览器解析所需的其他全部证书,比如根证书和中间证书,fullchain.pem包含服务器证书的全部证书链文件。
补充:
不使用docker,自己下载命令
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto certonly --email xxx@xxx.com --agree-tos -d "xxx.cn" -d "*.xxx.cn" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
或者
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --email xxx@xxx.com --agree-tos -d "xxx.cn" -d "*.xxx.cn" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
不管执行上面哪种都会报一种错
这是使用python3命令执行的时候却调用的是python2.7命令执行
解决方法:
apt-get purge python-virtualenv python3-virtualenv virtualenv
pip install virtualenv
然后再执行certbot-auto命令或者letsencrypt-auto命令
下面就会进入到交互阶段,同docker里执行certbot命令后一样的操作
查看当前服务器上全部证书