acme.sh申请ZeroSSL泛域名证书
公司之前同事在阿里云上申请的免费域名到期了,本来打算继续申请免费一年的证书,但上去一看,同一个域名下的子域名他都申请了一个证书,对于我这样的懒人,我是不可能再一个一个的去搞,根据自己blog搞的Let’s Encrypt的证书,打算给公司也申请一个泛域名的Let’s Encrypt证书.没想到更新acme.sh脚本的时候,才发现这个已经支持ZeroSSL、BuyPass、Let’s Encrypt等多种不同证书,还好这个域名不是很重要,就拿来申请ZeroSSL证书试试.
ZeroSSL在2016年就已经推出,和Let’s Encrypt一样,证书有效期只有90天,支持泛域名SSL证书.和Let’s Encrypt不同的是,ZeroSSL API没有速率限制,不存在同一IP多次申请SSL证书被限制的问题,ZeroSSL还提供了WEB界面可在后台管理SSL证书,相比Let’s Encrypt功能更加丰富.
系统:centos 7.x(64位)
1.安装acme.sh
curl https://get.acme.sh | sh
创建一个 bash 的 alias,方便使用: alias acme.sh=~/.acme.sh/acme.sh
使其生效
source ~/.bashrc
查看版本
acme.sh -v
https://github.com/acmesh-official/acme.sh
v3.0.2
2.注册 ZeroSSL 账号
官网注册:https://zerossl.com/
注册好后,接下来就是把acme.sh的注册服务器改为ZeroSSL.
ps:通过ZeroSSL官网在线申请SSL证书,免费账户是有3个域的额度限制的,但通过acme.sh申请则没有这个限制,所以建议使用acme.sh进行申请,简单方便。
3.将acme.sh server更改为ZeroSSL
#更换默认服务商为ZeroSSL(这是全局切换)
acme.sh --set-default-ca --server zerossl
这步方便与acme.sh申请的证书进行绑定于关联(邮箱不要乱填):
acme.sh --register-account -m 你注册时用的邮箱地址 --server zerossl
或使用eab key(https://app.zerossl.com/developer):
acme.sh --register-account --server zerossl \
--eab-kid 你的eab-kid \
--eab-hmac-key 你的eab-hmac-key
4.acme.sh申请ZeroSSL泛域名SSL证书
#这里演示,以我slogra.com域名为例
acme.sh --issue --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please -d slogra.com -d *.slogra.com
ps:执行后会提示你去dns解析填txt记录
txt解析生效后,再执行下面这条命令:
acme.sh --issue --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please -d slogra.com -d *.slogra.com --renew
如果没有报错,就说明你的证书已经申请成功.
5.最后就是把你申请下来的泛域名证书安装到你指定的位置(不要照抄我写的地址,执行这步之前在nginx配置里把证书的一些配置做好)
acme.sh --installcert -d slogra.com -d *.slogra.com --key-file /etc/nginx/ssl/slogra.com.key --fullchain-file /etc/nginx/ssl/slogra.com.pem --reloadcmd "systemctl reload nginx"
6.验证
打开浏览器进行访问,没有显示证书错误的话,那就表示你已经成功了.
7.更新证书
更新证书不需要做任何操作,acme.sh 会自动创建 cronjob,在每天 0:00 点自动检测所有的证书,如果证书快过期了,则会自动更新证书.
好了,以上就是acme.sh申请ZeroSSL证书的全部内容了.
评论: