证书快过期了(2016-12-11),本着节约资(R)源(MB)的精神,准备使用Let’s Encrypt。
ps. 看来想要顺利安装Certbot,还需要epel-release
I. 安装Certbot
yum install -y epel-release
yum install -y certbot
II. 使用webroot方式获取证书
使用webroot的方式可以让你不需要重启
操作前假设你的web目录为/var/html/www/
-w 指定webroot根目录
-d domain 想要获取的证书域名,支持多个域名
certbot certonly --webroot -w /var/html/www/ -d blog.httproot.com -d www.httproot.com -d httproot.com
成功执行后会生成几个文件
~ ll /etc/letsencrypt/live/blog.phpgao.com/
cert.pem -> ../../archive/blog.phpgao.com/cert2.pem
chain.pem -> ../../archive/blog.phpgao.com/chain2.pem
fullchain.pem -> ../../archive/blog.phpgao.com/fullchain2.pem
privkey.pem -> ../../archive/blog.phpgao.com/privkey2.pem
这几个文件就是我们开启https所需要的所有文件了,更多信息可以参考为你的网站开启ssl支持
文件名 说明
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/blog.httproot.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.httproot.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/blog.httproot.com/chain.pem;
/
剩下的配置
/
III. 自动更新
根据Certbot的文档,我们先测试一下升级流程
/usr/bin/certbot renew --dry-run
如果结果没有问题就可以加到计划任务中了!由于Let’s Encrypt的证书有效期是3个月,而certbot renew只会更新还有30天才会过期的证书,所以我们在每周一的中午12点检查一次即可!
0 12 * * 1 /usr/bin/certbot renew --quiet
## or with log
0 12 * * 1 /usr/bin/certbot renew >> /var/log/cerbot.log
补充:
renew的时候报错的解决办法
ImportError: ‘pyOpenSSL’ module missing required functionality. Try upgrading to v0.14 or newer.
rpm --query centos-release # centos-release-7-3.1611.el7.centos.x86_64
wget ftp://ftp.muug.mb.ca/mirror/centos/7.3.1611/cloud/x86_64/openstack-mitaka/common/pyOpenSSL-0.15.1-1.el7.noarch.rpm
rpm -Uvh pyOpenSSL-0.15.1-1.el7.noarch.rpm
yum install certbot
certbot renew