Let’s Encrypt是很火的一个免费SSL证书发行项目,自动化发行证书,证书有90天的有效期。而且支持多域名使用同一个证书,这很方便。
安装方法:
如果是CentOS 6、7,先执行:yum install -y epel-release
wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
1.单一域名生成SSL证书
./certbot-auto certonly --email zhang651651@hotmail.com --agree-tos --no-eff-email --webroot -w /home/wwwroot/a.com -d a.com
OR
2.多域名单目录生成一个SSL证书
./certbot-auto certonly --email zhang651651@hotmail.com --agree-tos --no-eff-email --webroot -w /home/wwwroot/a.com -d a.com -d b.com -d c.com
OR
3.多域名多目录生成一个证书:(即一次生成多个域名的一个证书)
./certbot-auto certonly --email zhang651651@hotmail.com --agree-tos --no-eff-email --webroot -w /home/wwwroot/a.com -d a.com -d www.a.com -w /home/wwwroot/lnmp.org -d www.lnmp.org -d lnmp.org
跑完上面命令,如果成功的话,会出现:
IMPORTANT NOTES:
- Congratulations!.....
- ........
- ........
生成的证书会存在:/etc/letsencrypt/live/a.com/ 目录下。
改完配置文件切记重启或reload nginx。
证书续期
cerrbot的续期比原来的更加简单,因为证书只有90天,所以建议使用crontab进行自动续期:
crontab 里加上如下规则:
0 3 */5 * * /root/certbot-auto renew --disable-hook-validation --renew-hook "/etc/init.d/nginx reload"
这样每5天就会执行一次所有域名的续期操作。当然时间也可以自行进行调整,建议别太频繁,因为他们都有请求次数的限制,如果需要强制更新可以在前面命令上加上 --force-renew 参数。
注意事项:
1、因为默认LNMP的虚拟主机里是禁止 . 开头的隐藏文件及目录的,所以访问http://a.com/.well-known/acme-challenge/**** 这个链接的话返回403错误,所以必须要将对应虚拟主机配置文件里的
location ~ /.
{
deny all;
}
location ~ /.well-known {
allow all;
}
以上配置代码,然后重启nginx。
或者直接去下面这个网址申请,一样的。
https://www.sslforfree.com/