Let’s Encrypt来头不小…略…
博客需要支持HTTPS,用Let’s Encrypt提供的免费证书,真是再好不过,近期Let’s Encrypt宣布支持泛域名证书的申请,觉得泛域名证书比单域名证书更好维护,也就尝尝鲜,本文记录使用certbot申请泛域名证书的过程以及遇到的几个问题。
已安装过certbot-0.21.0,系统信息:
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
新的泛域名证书需要升级certbot到0.22.0及以上,官方安装指南。
参照其他文章,在机器上运行certbot-auto -V
,的确完成了升级,但提示没有-V
选项,也许是操作系统不一样,未深究,猜测执行certbot-auto命令时会自动完成升级。
升级完成后,多了两个可执行文件certbot与certbot-2,其中certbot是certbot-2的软连接,使用certbot --version
查看版本号,显示0.22.0
,接下来开始申请。
由于certbot dns-plugins不支持阿里云API,故这一步需要通过交互式申请,从而导致后续不能使用crontab配置证书自动续签。
申请命令:
certbot certonly -d *.amsimple.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
--manual
交互式获取,--preferred-challenges dns
使用DNS验证的方式(泛域名只能使用DNS验证),--server
指明支持acme-v02的Server地址,默认是acme-v01的地址。
按照要求输入邮箱,同意协议,当看到下面信息:
------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.amsimple.com with the following value:
JHkwGFgXq3OgedI-4RU1X0EcFUz7cxIPN7r1Qyw5JTw
Before continuing, verify the record is deployed.
------------------------------------------------------------
Press Enter to Continue
暂停操作,配置域名解析,添加一条TXT类型的解析:
纪录:_acme-challenge.amsimple.com 结果:JHkwGFgXq3OgedI-4RU1X0EcFUz7cxIPN7r1Qyw5JTw
等待3-5分钟,使用以下命令检查解析是否设置成功:
dig -t txt _acme-challenge.amsimple.com @8.8.8.8
域名解析结果正确,再回到certbot申请的流程中敲回车,成功后,certbot会提示证书和私钥的路径,接着在nginx中配置并重启即可,Good luck have fun~
申请过程中遇到了两个小问题,在certbot的官方Github的issue中找到热心网友提供的解决办法,记录在此,也许你也会遇到同样的问题,可参考解决。
certbot升级完成后,运行certbot进行泛域名申请时,提示缺少库文件:
No module named 'requests.packages.urllib3'
通过以下命令安装依赖:
pip install requests urllib3 pyOpenSSL --force --upgrade
再次运行时,继续提示错误:
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
通过以下命令修复:
pip install --upgrade --force-reinstall 'requests==2.6.0'
申请的泛域名证书*.amsimple.com
并不能用在amsimple.com
,所以服务器还是需要两个证书。
由于dns plugins不支持阿里云API,暂时不能全自动续签,而一次申请只有三个月有效期,建议大家晚点尝试,如果你有更好的全自动续签方法,欢迎邮件指导。
博客原文