简介
Let's Encrypt
:一个免费、开放,自动化的证书颁发机构,由ISRG
运作,在2016
年5
月,更名为Certbot
。ISRG
:Internet Security Research Group
,是一个关注网络安全的公益组织,其赞助商有非商业的组织、财富100
强的公司。ISRG
的使命:以消除资金,技术领域的障碍,全面推进加密连接成为互联网的标配。Let's Encrypt
项目于2012
年由Mozilla
的两个员工发起,2014
年11
年对外宣布公开,2015
年12
月3
日开启公测。
相关网址
Let's Encrypt
:官网。Cerbot
:官网,GitHub。
安装指导
CentOS
修改
CentOS
的软件源,《CentOS/Ubuntu的国内软件源》。更新软件包:
1 | yum makecache && yum update -y |
- 安装软件:
1 | yum install -y certbot |
证书指导
配置文件
- 更改
Nginx
的配置文件:
1 | server { |
申请证书
若你的网站正在运行中,推荐使用
webroot plugin
。支持多个域名使用相同的证书,只需使用多个
-d
选项即可。命令格式
1 | certbot certonly --webroot -w <网站根目录> -d <域名> --agree-tos --email <email> |
- 命令示例
1 | certbot certonly --webroot -w /data/www -d www.xiaocoder.com --agree-tos --email xiao.950901@gmail.com |
证书位置
所有已申请的证书都放在
/etc/letsencrypt/archive
下,而/etc/letsencrypt/live
总指向最新版本的软链接。在Web服务器中配置时,建议指向
/etc/letsencrypt/live
目录下的文件,避免证书更新后,还需要更改配置。每一个域名对应一个目录,主要包含以下几个文件:
cert.pem
:服务器证书。privkey.pem
:服务器证书对应的私钥。chain.pem
:除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书。fullchain.pem
:包含服务器证书的全部证书的文件。
一般情况下
fullchain.pem
和privkey.pem
就够用了。加强
diffie-hellman
算法强度(耐心等待):
1 | openssl dhparam -out /etc/ssl/certs/dhparams.pem 2048 |
使用证书
1 | server { |
- 重新加载
Nginx
服务:
1 | nginx -s reload |
- 使用浏览器访问,测试是否配置成功。
- 使用SSL LABS在线测试服务器证书强度。

证书续约
- 证书的有效期为
3
个月,3
个月后需要刷新证书。 - 刷新证书的命令:
1 | certbot renew |
在执行刷新命令时,只有当过期时间小于
30
天时,才会真正的更新。因此,一个实际的操作方式是每星期或每天执行一次更新操作。
添加
Ctrontab
任务,实现自动续约:
1 | crontab -e |
- 每星期一的
3
点30
分执行更新证书操作,3
点35
分执行Nginx
重载操作。
1 | 30 3 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log |