Let's Encrypt证书的一些操作(Certbot)

1 前言

Caibaoz.com用Let's Encrypt的证书实现SSL加密(也就是HTTPS),但如果遇到网站迁移、或者子域名也需要HTTPS的时候,应该如何操作?本文简要回答这2个问题。

需要说明一点,Let's Encrypt本身只是一个CA机构,只负责证书的发行,证书的申请和自动续订是使用工具实现的。我使用Certbot这个工具,因此本文的内容也主要是Certbot的一些命令。

最后,本文只适用于具有shell访问权限的情况(自己搭web服务器)。

1.1 软件版本

操作系统:Debian 9

Web服务器:Apache 2.4

Certbot:根据Certbot安装文档Debian backports安装的版本

2 操作

2.1 网站迁移

就当旧服务器的证书不存在,在新服务器上申请新的证书即可。但需要注意不要超过Let's Encrypt的重复证书申请限制:如果新证书所包含的域名和已申请过的证书完全相同,这样的证书申请每周只能做5次。比如本周你已经给www.example.com和example.com申请了一个证书,那么本周内你还能给这两个域名申请4次证书。更多限制信息请阅读Let's Encrypt的频率限制

如果你一定要使用原有的证书,可以参考下面3篇文章。由于使用原有证书的确比申请新证书麻烦,所以我最终没有这么做。

2.2 给现有证书添加新域名

  1. 查看现有证书的名称(显示在Certificate Name那一行),及证书目前所包含的域名:
    certbot certificates
  2. 假设我的证书里原本有www.caibaoz.com和caibaozi.com两个域名,想再添加一个abc.caibaoz.com域名,那么命令可以这样写。“--cert-name”参数后面是证书名称,“-d”参数后面是需要包含在证书里的域名。“certbot certonly”这个命令既可以给证书添加域名,也可以从证书里删除域名,具体是添加还是删除,是用“-d”参数控制的。如果证书原来包含的域名没有用“-d”参数列出来,那么命令执行后会把这些域名从证书中删掉,这一点一定要注意。
    certbot certonly --cert-name caibaoz.com -d caibaoz.com -d www.caibaoz.com -d abc.caibaoz.com
  3. 新域名添加完后,检查一下结果:
    certbot certificates

如果只是要给证书里添加子域名,其实这是一个麻烦的办法,更简单的方法是申请一个通配符证书,证书里只需要包含“*.caibaoz.com”这一个域名即可。但Certbot的Debian版本目前还不支持通配符域名,目前只能这样操作。

3 参考文档

一些参考文档已在正文中列出,下面的是没有列出的。

3.1 Changing a Certificate’s Domains

点击量:277

发表评论

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

4 + 13 =