📖前言
随着acme.sh
作者的不断更新,功能越来越强大,现在acme.sh
已经支持ZeroSSL、BuyPass、Let’s Encrypt等多种不同证书。
由于Let’s Encrypt OSCP服务器使用人多,导致国内首次访问使用Let’s Encrypt SSL的站点加载速度过慢或失败,我们同时分享下另一个SSL服务提供商ZeroSSL,他的限制比较宽松。当Let’s Encrypt 不能用时也可以用ZeroSSL多一个选择
特别说明,debian 一定要使用 ~/. 前缀
🛁关于ZeroSSL
ZeroSSL在2016年就已经推出,和Let’s Encrypt一样,证书有效期只有90天,支持泛域名SSL证书。和Let’s Encrypt不同的是,ZeroSSL API没有速率限制,不存在同一IP多次申请SSL证书被限制的问题,ZeroSSL还提供了WEB界面可在后台管理SSL证书,相比Let’s Encrypt功能更加丰富。
在acme.sh
的文档中提到,acme.sh默认server使用Let’s Encrypt,将在2021/08/01发布v3版本,默认server将更改为ZeroSSL(参考:https://github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL),可以看出ZeroSSL越来越流行,acme.sh
也在向ZeroSSL靠拢。
🚿关于Let’s Encrypt
Let’s Encrypt是一个于2015年推出的数字证书认证机构,一直以来提供免费的SSL证书服务,使用的用户很多 acme模认首选此机构
🎠安装acme.sh
acme.sh
实现了 acme 协议,可以帮助你快速申请SSL证书,自动更新证书等操作,极大简化操作步骤。在使用之前,我们需要先安装,以下命令均在Linux系统完成。
|
|
是的,只需要简单一行命令即可安装,安装完成后,可输入acme.sh -v
查看当前版本。验证是否成功。
|
|
⛺将acme.sh server更改为ZeroSSL
注意,使用ZeroSSL 需要注册帐号和API,下方有方法。
如果用Let’s Encrypt这一步不做。
acme.sh
默认使用Let’s Encrypt作为服务提供商,我们可以通过以下命令,将其更换为ZeroSSL:
|
|
⛲配置DNS API
SSL证书验证可通过DNS验证、文件验证等多种方式,为了方便多个域名申请以及后续证书更新,推荐使用DNS API方式,不过在使用前需要先进行设置。
找到你域名的云服务商的API,运行命令写入
- DNSPOD(国内版,只有国内版才可以申请),命令为:
|
|
- Cloudflare Global API
|
|
- 华为云 (国内版)
|
|
- 阿里云
|
|
更多DNS API设置请参考:https://github.com/Neilpang/acme.sh/tree/master/dnsapi
🧭继续配置ZeroSSL API ,Let’s Encrypt跳过>
申请证书之前,建议先在ZeroSSL官方网站:https://zerossl.com/注册账号,方便与acme.sh
申请的证书进行绑定于关联。
🎨acme.sh申请ZeroSSL泛域名SSL证书
首次使用需要先注册ZeroSSL账户(参考上一步),如果已经注册,下面的命令会自动关联账户,命令如下(myemail@example.com
改成你自己的ZeroSSL邮箱,不要乱填):
|
|
🏰申请泛域名SSL证书
刚刚已经在上一个步骤中设置好各云解析DNS API,现在可以输入命令直接申请:
|
|
🏯开始SSL自动更新
这样就可以每次快过期时,acme 就可以自动帮你更新证书
|
|
🌠复制证书
前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件。正确的使用方法是使用 –installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:
|
|
Nginx复制后重新载入
|
|
⛱️创建自动复制证书脚本
我们需要自动定期把证书COPY到指定目录
|
|
将内容COPY至ssl.sh
|
|
给.sh赋予权限
|
|
每天定期复制SSL证书
Debian 11为例:
|
|
copy 以下内容放在文件下一行
|
|
= 完🛰️ =