更新apt安装源
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
安装letsencrypt软件
$ sudo apt-get install letsencrypt
生成证书
standalone模式需要关闭Nginx(Nginx默认会占用了80端口)
$ /etc/init.d/nginx stop
$ letsencrypt certonly --standalone -d abc.com
如果同时需要添加多个网站,比如www.abc.com和abc.com,则加多个网站
$ letsencrypt certonly --standalone -d abc.com -d www.abc.com
运行正常结束会有Congratulation提示,此时可以记录下证书默认生成的地址
检查证书是否生成
默认生成地址为/etc/letsencrypt/live/abc.com目录,查看是否已经生成如下证书文件
- cert.pem: 你不用关心 (服务器证书文件)
- chain.pem: 你不用关心 (根证书和中继证书)
- fullchain.pem:
cert.pem+chain.pem的合体,需要配置到 Nginx 配置文件中的ssl_certificate中 - privkey.pem: 私钥,需要配置到 Nginx 配置文件中的
ssl_certificate_key中
修改Nginx配置
在https对应的server中按需添加如下几行
listen 443 ssl;
listen [::]:443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/abc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/abc.com/privkey.pem;
server_name abc.com www.abc.com;
验证Nginx文件并启动
$ nginx -t
$ /etc/init.d/nginx start
定时续约证书
增加定时器任务进行编辑,编辑增加任务(要先关闭80端口的占用,然后更新证书,再启用80端口的服务)。
$ crontab -e
添加更新ssl证书的命令参考(每月12日3:00运行)
0 3 12 * * echo `date -R` >> /var/log/lets.crontab.log; (/etc/init.d/nginx stop; letsencrypt renew; /etc/init.d/nginx start) >> /var/log/lets.crontab.log 2>&1
小提示
letsencrypt生成证书命令在运行时会优先自动更新,而更新时间较长。所以往往习惯于先试运行生成证书命令,等待更新完成,更新不需要停止Nginx。更新后,该命令会在真正生成证书时报错,此时再停止Nginx,重新运行一遍生成证书命令。这样可以有效缩短Nginx停服时间。
本文介绍如何使用Let's Encrypt为Ubuntu服务器获取免费SSL证书。包括更新安装源、安装Let's Encrypt、生成证书、配置Nginx及设置证书自动续期等步骤。
3553

被折叠的 条评论
为什么被折叠?



