什么是 Let’s Encrypt?
部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的!!!也就是说签发证书不需要任何费用。Let’s Encrypt 由于是非盈利性的组织,需要控制开支,他们搞了一个非常有创意的事情,设计了一个 ACME 协议,目前该协议的版本是 v1。
那为什么要创建 ACME 协议呢,传统的 CA 机构是人工受理证书申请、证书更新、证书撤销,完全是手动处理的。而 ACME 协议规范化了证书申请、更新、撤销等流程,只要一个客户端实现了该协议的功能,通过客户端就可以向 Let’s Encrypt 申请证书,也就是说 Let’s Encrypt CA 完全是自动化操作的。
任何人都可以基于 ACME 协议实现一个客户端,官方推荐的客户端是 Certbot 。
什么是通配符证书
在没有出现通配符证书之前,Let’s Encrypt 支持两种证书。
-
单域名证书:证书仅仅包含一个域名。
-
SAN 证书:一张证书可以包括多个域名 Let’s Encrypt 限制是 20),也就是证书可以包含下列的域名:www.example.com、www.example.cn、blog.example.com 等等。
Let’s Encrypt 通配符证书
通配符证书就是证书中可以包含一个通配符,比如 .example.com、.example.cn,企业可以使用通配符证书,一张证书可以放置在更多的子域名。
自动生成 Let’s Encrypt 通配符证书
为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。也就是说任何客户端只要支持 ACME v2 版本,就可以申请通配符证书。
下载安装 Certbot 客户端
cd /usr/local/
git https://github.com/certbot/certbot.git
生成通配符证书
./certbot-auto certonly --email 7731226@qq.com -d *.heguangzhi.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
certonly 表示安装模式,Certbot 有安装模式和验证模式两种类型的插件。
–manual 表示手动安装插件,Certbot 有很多插件,不同的插件都可以申请证书,用户可以根据需要自行选择
-d 为那些主机申请证书,如果是通配符,输入 *.xxxx.com (可以替换为你自己的域名)
–preferred-challenges dns,使用 DNS 方式校验域名所有权
–server, Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本