我们https访问都是用的免费Let's Encrypt,其提供的SSL证书每三个月需要续一次,在服务器上安装一个certbot-auto程序,基本上就可以不管了,但实际上还是会偶尔收到邮件通知,自动续期没有成功,需要人工干预。一般来说都是遇到certbot-auto本身的升级或者依赖的Linux系统软件需要升级,人工运行命令后也都基本上回答几个Y/N进行安装、升级就可以。
但最近遇到点问题,运行./certbot-auto renew 一直显示如下报错:
WARNING: couldn't find Python 3.5+ to check for updates. Traceback (most recent call last): File "", line 16, in File "/usr/lib64/python3.4/distutils/version.py", line 58, in __lt__ c = self._cmp(other) File "/usr/lib64/python3.4/distutils/version.py", line 176, in _cmp if self.version != other.version: AttributeError: 'StrictVersion' object has no attribute 'version'
这应该是Python版本不行,在网上搜了一下,找到这篇《Certbot failing to find python version on Centos 6.10》,与我们遇到的问题是一样的(我们国内阿里云ECS没有遇到这个问题,国外阿里云ECS都遇到这个问题),前些天做了记录,但一直没有解决。
这两天再次接到通知邮件,有部分域名的SSL证书即将过期了,不得不去解决。按照那篇文章说了,做了如下工作:
cd /root/certbot
进入目录./certbot-auto
mv certbot-auto certbot-auto-0.40.0
备份老版本文件
wget https://dl.eff.org/certbot-auto
获取新版本文件,目前是0.40.1
chmod a+x certbot-auto
给与可执行权限
mv /opt/eff.org /opt/eff.org-0.40.0
老版本的安装目录备份
./certbot-auto
运行新文件,安装过程中会提示Python版本升级到3.4以及其它依赖包