利用 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