【译】Let’s Encrypt – 免费的SSL/TLS证书

每一个建立过安全站点的人都在如何维护证书这个问题上深受困扰。Let’s Encrypt 推荐的客户端 Certbot,能够自动的消除这些用户的痛点,并且让站点维护人员能够使用简单的命令开启和管理站点的HTTPS功能。

不需要验证邮件,不需要去编辑复杂的配置,也不再你的站点因为证书过期而无法正常工作。当然,因为Let’s Encrypt提供的是免费证书,因此也不需要付费。

本文简要描述了如何使用Certbot进行证书管理。(欢迎使用任何兼容的客户端;相关说明请查看这些项目的指导页面)。

如果你想知道更多关于它是工作原理,查看我们的 工作原理 页面。

安装客户端软件

如果你的操作系统包含了一个certbot的安装包,从这里安装它 ,然后使用相应的certbot命令。如果没有的话,则可以使用我们提供的cert-auto包装器脚本快速的获取一份。

$ git clone https://github.com/certbot/certbot
$ cd certbot
$ ./certbot-auto --help 

certbot-autocertbot命令拥有相同的命令行参数;它会安装所有的依赖并且自动更新 Certbot 的代码(这个过程下载的文件比较大,因此比较慢)。

使用限制

Let’s Encrypt 每周会产生有限数量的证书,确切的数量请查看这篇文章。如果你第一次使用certbot,你可能希望添加--test-cert标识,并且使用一个未使用的域名。这样将会从staging服务器获得一个证书,它们在浏览器中是无效的,除此之外,其它过程都是相同的,因此你可以测试各种配置选项而不会超过这个数量限制。

如何使用客户端

Cerbot 支持很多插件,可以用它们来获取和安装证书。下面包含了一些选项的使用例子:

如果你在近期发布的Debian操作系统上运行Apache服务,你可以尝试Apache插件,使用它可以自动获取和安装证书:

certbot --apache

目前在其它平台上还没有实现自动安装,因此你必须使用命令certonly进行安装。下面是一些例子:

要获取一个可以在任何web服务器的webroot目录上能够运行证书,需要使用“webroot”插件:

certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

这个命令将会获取example.com,www.example.com, thing.is 和 m.thing.is 的单个证书,它将会把前两个域名生成的文件放到/var/www/example目录,后面两个放到/var/www/thing目录。

例如使用内建的“独立”web服务器获取 example.com 和 www.example.com 的证书(你可能需要临时停止已经存在的web服务器):

certbot certonly --standalone -d example.com -d www.example.com

证书续订

从0.4.0版本开始,Certbot增加了高级的renew子命令,它可以用于使用之前获取证书时相同的配置续订所有的证书。你可以通过运行以下命令测试一下:

certbot renew --dry-run

上述命令会获取一个测试证书,它不会对你的系统产生任何持久化的修改。如果你觉得这个结果还可以,可以运行下面的命令:

certbot renew

如果你想续订某一个证书(而不是所有的)或者修改某一个用于续订的配置参数,你可以使用certbot certonly命令和其它特定的配置获取单个证书。当使用certbot certonly命令的时候,你可以得到单个证书的续订。使用指定-d选项指定你希望续订的域名所覆盖的每一个域名。

注意: 从0.4.0开始,Certbot将会记录任何你使用certonlyrenew时选择的配置,未来使用renew的时候将会使用最近的配置。在版本0.3.0中,Certbot只会记录第一次获取证书时的配置,并不会使用之后续订时的配置替换它。

动词renew被设计用来半自动或者自动的使用,因此它也隐含着--non-interactive的意味。该选项意味着Certbot不会停下来与你进行交互;对于自动续订来说,使用该选项是非常不错的,但是因为指定该选项的话你无法与Certbot进行交互,因此你应该确保你所有的配置都被正确的设置。

选项--dry-run用于从我们的staging服务器获取证书。获取的证书不会保存到磁盘上,并且你的配置也不会被更新,因此你可以用来测试是否的renew或者certonly命令能够正确的执行续订。从staging服务器获取证书不会影响生产服务器的数量限制。

如果你想要改变之前指定的值,你可以在续订时,在命令行中指定一个新的选项,例如:

certbot renew --rsa-key-size 4096

运行certbot renew命令将会续订所有在续订窗口的证书(默认情况下,证书过期时间为30天)。如果你想要续订单个证书,你应该使用certbot certonly -d命令指定要续订的证书的域名。例如:

certbot certonly --keep-until-expiring --webroot -w /var/www/example.com -d example.com,www.example.com -w /var/www/thing -d thing.is,m.thing.is

如果你的证书安装在本地服务器,则一旦certonly命令执行完成,你需要重载服务器的配置文件(例如,对于apache2服务器来说执行server apache2 reload命令)。

开发自己的续订脚本

对于如何建立自动续订功能,请参考续订文档

撤销证书

使用下面的命令撤销撤销一个证书

$ certbot revoke --cert-path example-cert.pem

完整文档

更多关于Certbot的信息,请参考 完整文档。已知的一些问题使用Github进行跟踪。在提交新的问题的时候请先参考最近是否有相似的问题。

获得帮助

在阅读文档和问题列表之后,如果你需要额外的帮助的话,请尝试我们的帮助社区论坛

查看我们的 隐私策略.

查看我们的 商标策略.

Let’s Encrypt是由非营利的互联网安全研究小组(ISRG)管理的一个免费,自动化,开放的证书授权机构。

1 Letterman Drive, Suite D4700, San Francisco, CA 94129

Linux Foundation是Linux基金会的注册商标。Linux是由Linus Torvalds注册的商标


原文:

Let's Encrypt – Getting Started

You may also like...

发表评论

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

Scroll Up