ssl证书到期了怎么办?
今天给大家分享一个shell脚本,即可【永久】免费使用【所有域名】ssl证书。
Acme.sh 是一个纯 Shell 脚本,支持 ACME 协议,用于自动从 Let's Encrypt 获取免费证书。它可以在大多数 Linux 系统上轻松安装和使用。以下是关于安装和使用 Acme.sh 的详细步骤:
1.安装 Acme.sh
使用 curl 安装
bash复制代码curl https://get.acme.sh | sh使用 wget 安装bash复制代码wget -O - https://get.acme.sh | sh
2.初始化环境
安装完成后,初始化环境变量:
bash
复制代码
source ~/.bashrc
3.申请证书
可以使用各种验证方法申请证书,这里是一些常见的方法:
使用 Webroot 验证
bash
复制代码
acme.sh --issue --webroot /path/to/webroot -d http://example.com -d http://www.example.com
使用 Standalone 模式
bash
复制代码
acme.sh --issue --standalone -d http://example.com -d http://www.example.com
使用 DNS API 验证
例如使用 Cloudflare 的 DNS API:
bash
复制代码
export CF_Email="your-email@example.com"
export CF_Key="your-cloudflare-api-key"
acme.sh --issue --dns dns_cf -d http://example.com -d http://www.example.com
你需要根据你使用的 DNS 服务商选择相应的 API 方式。Acme.sh 支持的所有 DNS API 见官方文档。
4.安装证书
生成证书后,可以将其安装到指定位置。例如,安装到 Nginx 的默认位置:
bash
复制代码
acme.sh --install-cert -d http://example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.cer \
--reloadcmd "service nginx force-reload"
5.自动续期证书
Acme.sh 会自动添加续期任务到 crontab 中。可以手动检查 crontab 任务:
bash
复制代码
crontab -l
6.手动续期证书
如果需要手动续期,可以使用以下命令:
bash
复制代码
acme.sh --renew -d http://example.com --force
7.其他常用命令
列出所有证书
bash
acme.sh --list
显示证书信息
bash
复制代码
acme.sh --info -d http://example.com
删除证书
bash
复制代码
acme.sh --remove -d http://example.com
示例:使用 DNSPod API 验证和安装证书
假设使用 DNSPod 作为 DNS 服务商,可以通过以下步骤完成证书申请和安装:
设置 DNSPod API 凭据
bash
复制代码
export DP_Id="your-dnspod-id"
export DP_Key="your-dnspod-api-key"
申请证书
bash
复制代码
acme.sh --issue --dns dns_dp -d http://example.com -d http://www.example.com
安装证书到 Nginx
bash
复制代码
acme.sh --install-cert -d http://example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.cer \
--reloadcmd "service nginx force-reload"
通过这些步骤,你可以使用 Acme.sh 轻松管理你的 SSL 证书。如果遇到任何问题,请提供详细信息,我将尽力帮助你解决。
脚本1国内安装 acme.sh
脚本2
#DNS 手动添加 _acme-challenge 主机记录TXT 通配符证书