1.運行證書服務docker
docker run --entrypoint="/bin/sh" -it --name certbotsh certbot/certbot:latest
2.在容器里運行certbot命令
certbot certonly --manual --preferred-challenges dns-01 --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命令后一樣的操作
查看當前服務器上全部證書