一、前言
现在越来越多(可能吧)人已经意识到了给自己的网站使用https的重要性了。但是可能很多人会说“SSL证书不是要钱吗,自己发行的SSL不会得到浏览器的承认。”,也有人会说XX(中国大陆部分互联网公司)有免费的SSL证书。但是不知道大家是否知道Google Chrome和FireFox吊销了CNNIC证书的事情?所以个人更偏向使用国外的服务,这里推荐一下Let’s Encrypt的SSL证书,你可以通过Certbot自行签SSL。
二、正文
本文环境为CentOS 7,这里不是按照官网给的教程进行操作。你也可以根据Certbot官网的提示选择自己使用的系统和Web服务器,官网会给出下载安装使用教程。
1.安装依赖
CentOS 8可以不安装epel-release
1 |
yum -y install epel-release wget |
2.下载Certbot
1 2 |
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto |
3.使用Certbot签证书
如果你只给一个域名签证书
1 |
./certbot-auto certonly --email youemail@gmail.com --agree-tos --no-eff-email --webroot -w /home/wwwroot/sitepath -d www.domain.com |
如果你的网站有多个域名
1 |
./certbot-auto certonly --email youemail@gmail.com --agree-tos --no-eff-email --webroot -w /home/wwwroot/sitepath -d www.domain.com -d www.domain.net |
在这里简单介绍一下部分参数
–email 后面填写你的邮箱地址
–webroot -w 后面填写网站的路径
-d 后面填写域名
这个文件其实本质就是一个脚本来的((((如果你的系统缺少了依赖会帮你装上的(((
脚本会自动检测你的网站是否能访问,访问得到的内容是否和你服务器上的内容是否一致有效。如果你在用Cloudflare的CDN记得要先关掉,否则可能会错误。
4.证书说明
成功后会有Congratulations!
提示。
CertBot生成的证书保存在/etc/letsencrypt/live/
下。
我们可以看到有四个pem文件,查看README(学会阅读README文件是非常有用的一个技能),我们可以看到介绍。
privkey.pem:证书的私钥。
fullchain.pem:证书文件,可以用在大多数web服务器程序上。
chain.pem:用于OCSP,需要Nginx版本大于或等于1.3.7
cert.pem:这个不应该被使用,除非你看过了完整的档案,否则会损坏大多数服务器配置。
也就是说,通常情况下,我们只需要使用到privkey.pem
和fullchain.pem
。
5.续签和自动续签
自签的证书只有90天的有效期,免费的要什么自行车啊。但是我们可以续签。
1 |
./certbot-auto renew --force-renew --disable-hook-validation --renew-hook "/etc/init.d/nginx reload" |
每隔90天就要手动重新签一下着实有点麻烦,我们可以通过修改crontab不断renew。不过不建议太过频繁,因为有请求次数限制。
这里给出了每个月续签一次的指令,这里加上了–force-renew强制续签的参数。
1 |
0 0 1 * * /root/certbot-auto renew --force-renew --disable-hook-validation --renew-hook "/etc/init.d/nginx reload" |
发表回复