Let’s Encrypt

Let’s Encrypt是一个免费开放的SSL项目,可以自动化的创建并安装证书,解决了HTTPS推广过程中的收费和配置复杂两个难题,Let’s Encrypt是由互联网安全研究小组(ISRG,一个公益组织)提供的服务。主要赞助商包括电子前哨基金会,Mozilla基金会,Akamai以及思科。

安装

由于项目本身的开放性,衍生了大量的客户端。官方客户端有certbot,第三方客户端则五花八门,各种编程语言所编写的客户端,林林总总的加起来差不多有上百款,其中有些知名度的被官方进行汇总。需要注意的是,官方并不检查第三方客户端的可用性、稳定性、安全性,所以对这方面不熟悉的,应该使用官方的客户端certbot,以免出现各种各样的意外状况。若是你不满足于官方客户端,可以查看官网罗列的第三方客户端列表,了解更加详细的信息。

certbot是一个非常小巧易用的Let’s Encrypt 证书自动安装客户端,可以傻瓜化的安装SSL证书并自动配置Web server,让没有电脑基础的人简单的安装并配置HTTPS,帮助有电脑基础的人节省时间,广泛支持各种常见的操作系统和Web server。

支持的Web server

  • Apache2
  • Nginx
  • Haproxy
  • Plesk

支持的操作系统

  • 各种Linux系统
  • MacOS
  • Web Hosting sevice

certbot官网选择下载适合自己系统版本,不同的系统以及版本下载的certbot是不一样的,也许是一个脚本,也许是添加到Ubuntu源下载的一个程序。选择好后,会直接展现给你使用方法。

使用

Ubuntu 16.04 或更新的版本中已经内置了 certbot 包,我这里以 Ubuntu18.04 为例演示,差别仅仅是安装方式不同,

sudo apt install certbot # 安装
sudo certbot # 直接运行试试

certbot 会创建一个新的 Apache2 配置文件并自动进行配置。需要注意的是,当你为多个网站安装证书时所进行的自动配置。端口为443这一段,并不总是自动填写ServerName,会导致访问网站时证书错误,所以需要检查文件配置是否完整。

目前建议使用下面泛域名证书章节内容的方法来获取证书。

自动更新证书

目前Let’Encrypt颁发的证书仅有90天的有效期,在证书到期前需要更新证书,这一过程非常简单,只需要一行命令就可以完成。

certbot renew

虽然这很简单,但是依然需要每隔一段时间手动去操作,所以可以添加到cron计划任务自动执行。

sudo crontab -e
0 0 1 */2 * certbot renew >> /var/log/letsencrypt/renew.log

第一行命令直接在shell下执行,第一次打开crontab通常需要你选择用什么编辑器来配置crontab,你可以按照自己的习惯选择自己顺手的文本编辑器,然后把第二行内容添加到文末,这样就可以在每隔两个月,在一号的零点零分运行更新证书,并且把运行产生的输出日志保存在/var/log/letsencrypt/renew.log。你想要了解更多定时任务crontab的用法,可以查看crontab用法

泛域名证书

Let’s Encrypt在2018年3月份正式支持了泛域名证书,我也很快就试用了这个功能,虽然目前对于我意义并不大。使用方式也很简单,需要 certbot 版本大于等于 0.22,然后执行一行命令:

certbot certonly --manual -d *.example.com -d example.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

注意上述命令中你只需要修改 *.example.com 和 example.com 成你的域名,然后按照提示给域名添加两次 TXT 记录,然后回车下一步,就能获取成功了。

展示成果:

选项与参数(高级用户)

按照上列方法已经可以满足大多数人的需求了,当你有强烈的控制欲望和一定动手能力,可以了解一些cretbot的高级选项。

sudo certbot --apache certonly

certonly顾名思义,“cert only”就是只要证书,命令中添加certonly参数可以让certbot不修改你的Apache2的配置,只会生成证书。

sudo certbot renew --dry-run

--dry-run命令的作用在于测试是否可以正常运行,如果你刚刚安装完证书,并添加了自动更新任务,却担心到时间后能否正常运行,可以使用上面的命令进行测试。

发表评论

电子邮件地址不会被公开。 必填项已用*标注