Let’s Encrypt客户端 certbot-auto

问答中心分类: OneinStackLet’s Encrypt客户端 certbot-auto
xinren 提问 11月 前

Hey,群主:
一直在关注oneinstack,由于沃通免费的SSL被火狐等处罚了,所以最近很关注Let’s Encrypt,我看了oneinstack的使用certbot-auto方法,我结合certbot官网最新说明,我提出了一些建议和修正方法:
安装Let’s Encrypt客户端:

一.安装客户端certbot:

yum install epel-release
cd /usr/local/bin/
wget https://dl.eff.org/certbot-auto
chmod a+x /usr/local/bin/certbot-auto
./certbot-auto –n

二.获取证书:

我看到oneinstack ./vhost.sh中有先建立.well-known/acme-chanllenge,然后用./certbot-auto certonly –standalone方式获取证书,
不明白为何这样做?因为用“standalone”plugin的方式就不需要.well-known/acme-chanllenge了。如果当前服务器已有网站的话,为了避免关闭服务器,certbot建议选择”webroot”plugin的方式较好:(测试发现:会自动创建:.well-known/acme-chanllenge,无需人为创建)。命令建议如下:

./certbot-auto certonly –webroot –agree-tos –email admin@example.com -w /var/www/example/ -d http://www.example.com -d example.com -w /var/www/other -d other.example.net -d another.other.example.net

如果一定要选择“standalone”plugin的方式:命令如下:

./certbot-auto certonly –standalone –agree-tos –email admin@example.com -d example.com -d http://www.example.com -d other.example.net

三.续期:

./certbot-auto renew :

官方解释:执行./certbot-auto renew的时候会默认采用获取证书时的方法,比如之前是用webroot方法的它还是会引用这种方法,如果之前是用standalone的方法的话,它仍然会引用这种方法,
所以该命令应该只加其他的一些选项即可,如:./certbot-auto renew –force-renewal或者./certbot-auto renew –renew-by-default等,但不建议这个命令加上该选项,因为./certbot-auto renew会自检所有的证书期限,如果满足30天以内的话,它才会执行更新动作,否则本次更新仍然跳过了,只会从所有证书中更新30天以内的证书,这种判断方法就非常好了,让它自然吧。如果强制性(–force-renewal,–renew-by-default)的话,有可能同一时间会更新多个证书(VPS上有很多网站,很多单独证书),造成次数超标)。
另外:我看到./vhost.sh中:echo “0 10 * * 1 /usr/local/bin/certbot-auto certonly -a webroot –agree-tos –renew-by-default –webroot-path=${wwwroot_dir}/${domain} -d ${domain} ${moredomainame_D};${Cron_Command}” >> $Cron_file,这种应该是强制性续期某具体证书吧,如果我服务器有多个证书呢?如何续期?还有就是:之前获取证书的时候oneinstack采取的是standalone的方式,在这里又采取了webroot的方法续期,与上述默认续期规律不符,假如没有手动创建.well-known/acme-chanllenge的话,可能webroot方式会失败!官方建议对具体证书续期的话:建议:
./certbot-auto certonly –keep-until-expiring –webroot -w /var/www/example.com -d example.com,www.example.com -w /var/www/thing -d thing.is,m.thing.is
或者:./certbot-auto certonly –renew-by-default –webroot -w /var/www/example.com -d example.com,www.example.com -w /var/www/thing -d thing.is,m.thing.is
(具体单个证书续期是可以执行强制性了,因为只有一个证书更新而已,不会对Let’s Encrypt次数限制造成影响,但这个命令不适合写入cronb中去,因为假如有多个证书的话,只更新一个具体证书也没有意义,如果有好事者,建议他们手动操作该命令罢了,)。
综上所需:证书续期的话,如果要自动续期,只在cronb里面添加./certbot-auto renew才有意义,这个命令会自动自检所有证书的时间,然后再决定是否有必要更新它?官方称是离过期30天内才可能真正去更新它!

祝:oneinstack越来越好!