A-A+

利用Certbot工具快速给网站部署Let’s Encrypt免费SSL证书

2017年04月11日 经验杂谈 暂无评论 阅读 1,577 次

如今我们越来越多的网站开始使用SSL证书,不仅仅局限在电商网站、门户网站,甚至很多个人网站、博客都有在开启SSL安全在证书,且老左也在考虑是不是将博客安装SSL证书,之前一直有准备加上的,因为这款主题用的比较陈旧很多目录、文件都是手工静态加上去的,所以改动比较麻烦。

本人(liuheng.xin)中也有分享过多篇关于SSL证书的安装文章,且很多商家也都提供免费证书,比如腾讯云提供免费一年GeoTrust DV SSL证书、Let's Encrypt永久免费但需要90天激活一次续约,当然如果要购买证书也不是很贵,有的甚至几十元一年都可以买到。

对于一般的网站,我们使用免费SSL证书即可,比如用的较多的还是Let's Encrypt证书,我们可以根据教程手工部署,以及cPanel面板虚拟主机中。在这篇文章中,我准备分享采用Certbot工具部署Let's Encrypt证书过程。

第一、Certbot官网以及选择部署版本

官网地址:https://certbot.eff.org

这里我们可以根据实际项目环境,选择系统和发行版本,然后可以跳转到安装向导。然后会跳转到Automated、Advanced安装向导。

这里我们根据向导进行部署,这里就用自动模式部署看看,希望一切顺利,因为我现在都怕写教程了,有些甚至需要调整好几天才能完整,也许智商不是太高,这个没办法,天生的。

第二、Linux VPS利用Certbot部署SSL

这里我环境采用的是Nginx,系统用的是CentOS6,我会在上一步选择好对应的后根据提示进行步骤安装。

1、自动安装

wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto

执行自动安装会下载和安装需要的环境组件等,总之我们执行就可以,遇到需要安装与否的输入y后回车。

2、生成域名证书

A - 单域名

./certbot-auto certonly --email admin@example.com --agree-tos --webroot -w /data/wwwroot/wordpress -d ssl.example.com

B - 多域名

./certbot-auto certonly --email admin@example.com --agree-tos --webroot -w /data/wwwroot/wordpress -d ssl.example.com -w /var/www/dedecms -d domain.com -d www.domain.com

如果我们是多域名可以参考上面的进行多域名设置。域名进行修改和调整。

提示

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.domain.net/fullchain.pem. Your cert will
expire on 2016-10-01. To obtain a new or tweaked version of this
certificate in the future, simply run certbot-auto again. To
non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

就是生成成功。

生成的证书会存在:/etc/letsencrypt/live/www.domain.net/ 目录下

我们在生成证书的时候会有一个窗口弹出,然后估计没检测到邮箱,然后我手工输入回车OK后可以看到生成完毕,我们可以看到证书是90天,到时候再续约90天。我们也可以用自动脚本自动续约的。

3、找到我们的网站证书

我们可以在上面生成完成看到证书被放到/etc/letsencrypt/live/ssl.example.com/目录中,这个我们根据自己网址的文档区别。里面可以看到有cert.pem 、chain.pem 、 fullchain.pem  、privkey.pem四个文件。

4、将SSL文件部署到网站中

我们在获取到证书之后,就知道证书的路径,这里我们就不要动路径了,直接在网站Nginx配置文件或者APACHE文件中再调整,可以参考这篇文章,老左当时有进行设置过。

ssl_certificate /etc/letsencrypt/live/ssl.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ssl.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ssl.example.com/chain.pem;

在Nginx站点配置文件中添加443端口server,然后设置SSL证书文件。设置后重启nginx看看是否成功,如果错误会有提示的。最后收尾工作,我们是否需要将所有的非HTTP跳转到HTTPS。

第三、Let's Encrypt续约SSL证书

./certbot-auto renew --dry-run

执行后会自动续约,不过这样是不是也麻烦?因为每个90天前几天又要来一次。我们可以设定到定时里。

总结,无论我们通过何种方法安装Let's Encrypt免费SSL证书,只要能安装上就可以。这种方法也是比较简单的

给我留言