..

利用 acme.sh 签发 Let's Encrypt 通配符证书

最近几天有消息传出,Let’s Encrypt 支持通配符证书了,那真是喜闻乐见, 其实早在去年 Let’s Encrypt 就曾经说过 2018 年将会支持签发 通配符证书。 那在这几天确切消息已经传出来了。然后今天就马上试了一下。一直以来我都是使用 acme.sh 签发的证书, 虽然 Let’s Encrypt 也有官方的工具。

安装 acme.sh

curl https://get.acme.sh | sh

or

wget -O -  https://get.acme.sh | sh

其他安装方式请参考 acme.sh wiki 或中文 acme.sh wiki

签发证书

acme.sh 实现了 acme 协议支持的所有验证协议. 一般有两种方式验证: http 和 dns 验证. 这里我选择 dns 验证,相对于 http 验证,dns 更加灵活方便。

终端执行命令

export Ali_Key="xxxxx" // xxxxx 替换成阿里云Access Key ID
export Ali_Secret="xxxxx"  // xxxxx 替换成阿里云Access Key Secret

或编辑 account.conf 文件加入以下内容

SAVED_Ali_Key="xxxxx" // xxxxx 替换成阿里云Access Key ID
SAVED_Ali_Secret="xxxxx" // xxxxx 替换成阿里云Access Key ID

其他 DNS 解析服务请参考 dnsapi 把 boiko.cn 换成需要签发的域名

./acme.sh --issue --dns dns_ali -d test.boiko.cn

执行以上命令将会签发 test.boiko.cn 证书 将 test 改为 * 将会签发通配符证书

./acme.sh --issue --dns dns_ali -d *.boiko.cn

签发成功后,boiko.cn 的子域名都将可以使用这个证书了,但是这个时候 boiko.cn 是无法使用证书的,还需要加上

./acme.sh --issue --dns dns_ali -d *.boiko.cn -d boiko.cn

签发成功后,将会目录下生成一个目录,这个目录下存放这公钥以及私钥。

[root@xxxxx*.boiko.cn]# ls
# *.boiko.cn.cer  *.boiko.cn.conf  *.boiko.cn.csr  *.boiko.cn.csr.conf  *.boiko.cn.key  ca.cer  fullchain.cer

fullchain.cer 文件就是域名的公钥,部署时请使用该文件内容。 *.boiko.cn.key 文件就是域名的私钥,请妥善保管

将签发的证书部署在网站上就可以生效了。

unpkg.boiko.cn 已经部署上通配符证书了 该服务无法访问 edit: 2023-02-11

unpkg is a fast, global content delivery network for everything on npm. Use it to quickly and easily load any file from any package using a URL like

证书部署方法请自行 Google