ZeroSSL免费SSL证书申请与使用-支持自动续期和免费泛域名SSL证书
使用DNS验证
参考:https://wzfou.com/zerossl-ssl/#comment-20699
参考:https://blog.csdn.net/zhangxin09/article/details/125062975
参考:关于acme的一些操作:https://www.cnblogs.com/gandefeng/p/10183875.html
参考:关于acme的操作和文档 :https://www.cnblogs.com/hahaha111122222/p/16466268.html
参考:acme中文官方文档:https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
1.注册
官网:https://zerossl.com
2.安装acme
1.acme项目:https://github.com/acmesh-official/acme.sh
2.acme.sh详细教程:acme.sh支持免费SSL证书整理汇总-acme.sh安装和手动切换SSL CA方法
在线申请ZeroSSL证书虽然方便,但是不能自动续期,而有些面板或者脚本并没有集成acme.sh,这里我们可以自己安装acme.sh 来申请ZeroSSL免费SSL证书。首先是在VPS主机上安装acme.sh脚本:
curl https://get.acme.sh | sh -s [email protected]
脚本自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书. 安装过程不会污染已有的系统任何功能和文件, 所有的修改都限制在安装目录中: ~/.acme.sh/
3.准备cloudflare
CloudFlare提供了两种API:一种是全局API,这个API权限非常大,直接就拥有账户的所有权限。执行以下命令可以将API导入到acme.sh。
#一种是全局API,导入命令如下
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Email=“[email protected]"
#一种CloudFlare专门的API,导入命令如下:
export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Account_ID="xxxxxxxxxxxxx"
#Account_ID再cloudflare你的域名页右下部份获取
4.签发证书
acme.sh --issue --dns dns_cf -d youdomain.com -d *.youdomain.com
5.acme.sh安装ZeroSSL
#Apache example:
acme.sh --install-cert -d wzfou.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 force-reload"
#Nginx example:
acme.sh --install-cert -d wzfou.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"
--reloadcmd脚本可以做成shell脚本,有需要的话重新加载多个服务
如:
#!/bin/bash
#取名为restart_services.sh
# 重启 nginx 容器
docker restart nginx
# 等待一段时间(可选)
sleep 5
# 重启 mariadb 容器
docker restart mariadb
--reloadcmd "restart_services.sh",脚本替换为实际路径