怎样签发Let’s Encrypt证书

2018年3月20日 | 分类: 【技术】

【介绍】

2015年11月16日,Let’s Encrypt 正式对外开放。
2018年3月15日,Let’s Encrypt 发布的ACMEv2开始正式支持通配符证书。

【签发:certbot 方法】

安装 certbot-auto :

wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto

签发证书:

普通SSL证书:需要保护根域名 domainname.com,主域名 www.domainname.com ,或者其他二级域名 misc.domainname.com 。

./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d domainname.com -d www.domainname.com -d misc.domainname.com --manual --preferred-challenges dns-01 certonly

通配符SSL证书:需要保护根域名 domainname.com,所有子域名 *.domainname.com 。

./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d domainname.com -d "*.domainname.com" --manual --preferred-challenges dns-01 certonly

将安装一系列依赖包,然后设置,签发。

证书路径:

/etc/letsencrypt/live/domainname.com/fullchain.pem
/etc/letsencrypt/live/domainname.com/privkey.pem

【续展:certbot-auth-dnspod 方法】

参考:https://github.com/al-one/certbot-auth-dnspod
参考:https://zhuanlan.zhihu.com/p/21501138

获得 ID/token :

网址:https://console.dnspod.cn/account/token
格式:ID,Token

安装代码到自定义位置:

wget https://raw.githubusercontent.com/al-one/certbot-auth-dnspod/master/certbot-auth-dnspod.sh && chmod +x certbot-auth-dnspod.sh

配置A(把参数写入文件):

export DNSPOD_TOKEN="your dnspod token"

配置A(把参数写入配置文件):

echo "your dnspod token" > /etc/dnspod_token

续展命令:

certbot renew --manual-auth-hook /path/to/certbot-auth-dnspod.sh

【重签】

如果需要重签某域名,请先在如下各目录删除此域名对应配置文件:

/etc/letsencrypt/archive
/etc/letsencrypt/live
/etc/letsencrypt/renewal

【排障】

报错:Another instance of Certbot is already running

如果配置到一半,服务器退出,这时如果再重新生成此域名,会报错:

Another instance of Certbot is already running

查看已添加到一半的域名所占用的进程号:

ps -ef | grep certb

然后通过kill进程号命令删除:

kill 1105

清除相关进程号之后,重新执行签发命令。

报错:Certbot has problem setting up the virtual environment

可能是 pip 版本太低:

参考:https://community.letsencrypt.org/t/ssl-renewal-error-certbot-has-problem-setting-up-the-virtual-environment/26018/2

pip install --upgrade pip

如果仍不奏效,可能是因为pip源没有更新。

参考:https://www.cnblogs.com/ProgramLayman/p/8528568.html
参考:https://www.v2ex.com/t/347335

mv ~/.pip/pip.conf ~/.pip/pip.conf.backup

错误消失。

或者直接修改源:

参考:http://ju.outofmemory.cn/entry/287356
参考:http://www.cnblogs.com/ityunv/p/5909434.html

mkdir ~/.pip
cat > ~/.pip/pip.conf < < EOF

编辑 pip.conf :

[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
EOF