Aristotle
发布于 2024-03-12 / 20 阅读 / 0 评论 / 0 点赞

ZeroSSL免费SSL证书申请与使用-支持自动续期和免费泛域名SSL证书

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",脚本替换为实际路径