Let's Encrypt - certbot
certbot非常的简单和容易上手,不需要10分钟,你只需要不到5分钟,整个操作就完成了。简单实用即真理。
2018-11-05
33 次浏览
1. 引子
我曾使用acme.sh的简化方案,让新玩家在10分钟以内能够配置ssl证书到自己的域名下面。我自己也这么配置了我的域名,非常棒。但是,到了60天后,acme.sh并没有像它文档中所描述的什么都不用做,能够自动更新证书,连续出现了两次断档,导致我的域名过期的事件,所以我不得不重新寻找新的方案,还好我找到了。
2. 什么是certbot
和acme.sh一样,certbot是一个能够自动安装、部署、更新let's encrypt SSL证书的工具,同时,也是let's encrypt官网强烈推荐的新入坑玩家的工具。既然是新手工具,那一定是方便、简单和实用的。那么我们来看看怎么用这个certbot。
3. 安装、生成、发布、更新
首先,我们需要进入certbot官方网站 https://certbot.eff.org ,官网十分贴心,一上来就让你选择你使用的是什么服务软件和操作系统。
常见的apache和nginx赫然在列,有这两个就覆盖了大部分的使用者。操作系统也覆盖了大部分的使用者,这个看官自行上官网查看。
这里我按照我自己的网站的情况选择了ubuntu 14.04操作系统和nginx。进入安装界面之后,我被其简单和快捷震惊了。
3.1 安装
在Ubuntu上,可以通过ppa来进行安装
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
3.2 生成
使用certbot生成和部署完全可以统一完成,当然你也可以手动分开为两步,由于我之前已经在nginx中配置过ssl了,所以,我选择了分开为两步。
如果你需要自动完成生成和部署,则只需要一行命令:
$ sudo certbot --nginx
如果你需要自己来部署,还是只需要一行命令:
$ sudo certbot --nginx certonly
需要注意的是,这里的命令是根据你选择的服务软件和操作系统环境来决定的,所以具体的命令你需要到certbot官网去查看。
当你键入命令之后,certbot会自动扫描nginx下的配置,并找到server_name。
如果你想为所有的server_name都生成,则直接敲击“Enter”即可,如果要选定某个,则直接输入具体的数字。如果你选择的server_name中有类似我这样的,域名相同的多个server_name,certbot会聪明的帮你申请泛域名模式的SSL。
至此,证书就生成了,证书的存放地址以及certbot的相关配置都在目录 “/etc/letsencrypt/” 下,而正在使用的证书放在目录 “/etc/letsencrypt/live/” 下。
3.3 部署
生成证书之后,如果你是自动部署的话,certbot已经帮你配置到了nginx中。至于手动配置,我这里简单列出来我的配置。
server {
listen 80;
server_name ruislan.com www.ruislan.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name ruislan.com www.ruislan.com;
charset utf-8;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/ruislan.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ruislan.com/privkey.pem;
...
}
配置完成之后,别忘了测试配置文件,并重启服务。
$ sudo nginx -t
$ sudo nginx -s reload
3.4 更新
使用certbot更新非常简单,当你完成生成证书之后,certbot会自动在你的cron配置中添加更新语句,如果你需要手动更新,也只需要一条命令即可。
$ $ sudo certbot renew
4. 结语
通过使用certbot之后,我发现确实certbot非常的简单和容易上手,不需要10分钟,你只需要不到5分钟,整个操作就完成了。
简单实用即真理。