首先建议去ZeroSSL的官方网站注册一个帐号,然后在开发者页面里面的EAB Credentials for ACME Clients下边,点击Generate,里面生成的两个字符串,记得保存一下。
接着在系统上安装acme.sh,我使用的是FreeBSD,用pkg安装即可。
pkg install -y acme.sh
切换到创建的acme用户。
su - acme
将默认的CA改成ZeroSSL,最新版的可以不用,因为默认就是它了。
acme.sh --set-default-ca --server zerossl
然后将上边保存的那两串东西,填到下边的命令里面,然后回车运行。
acme.sh --register-account --server zerossl \
--eab-kid <你的kid> \
--eab-hmac-key <你的key>
新建一个目录,比如/usr/local/www/ssl,记得要给acme写入的权限,还有www读取的权限。
将下边这段配置加入到对应申请证书域名的NGINX配置文件中。
server {
listen 80;server_name <你的域名>;
root /usr/local/www/ssl;
}
记得加完之后重新启动NGINX,同时记得开80端口。
接着申请证书。
acme.sh --issue -d 你的域名 --webroot /usr/local/www/ssl
最后安装你的证书,不过记得给acme这个用户提升一下权限,比如sudo什么的。安装证书的位置自己选一个,比如这里的是/usr/local/etc/acme/certs。
acme.sh --install-cert -d <你的域名> \
--cert-file /usr/local/etc/acme/certs/<你的域名>.cert \
--key-file /usr/local/etc/acme/certs/<你的域名>.key \
--fullchain-file /usr/local/etc/acme/certs/<你的域名>.fullchain \
--reloadcmd "sudo service nginx restart"