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源下载的一个程序。选择好后,会直接展现给你使用方法。

使用

通过添加源安装或是下载的脚本,运行方式是不同的,第一种安装方式使用下面第一行命令运行,第二种方式下载的使用第二行命令运行。

sudo certbot
sudo sh 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用法

选项与参数(高级用户)

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

sudo certbot --apache certonly

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

sudo certbot renew --dry-run

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

发表评论

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