引言:选择 acme.sh 的优势与意义
在现代网站管理中,SSL证书的部署与续订至关重要。虽然宝塔面板提供了便利的自动化SSL管理功能,但使用acme.sh进行自动续订,不仅更为强大,还支持更多DNS服务器,极大提升了灵活性和兼容性。本文将详细介绍如何使用acme.sh实现免费SSL泛域名证书的自动续订,从而确保网站的安全性和高效管理。
acme.sh 优点
- 灵活性强:支持多种DNS服务提供商,用户可根据需求选择。
- 自动续订:无需手动干预,系统会自动处理证书续订。
- 简单易用:命令行操作简单,适合低级用户快速上手。
- 支持多域名:可以同时为多个域名和子域名申请证书,满足多样化需求。
安装步骤:
- 1.安装依赖:您需要确保系统已安装 socat。可以通过以下命令进行安装
sudo yum install socat
- 2. 安装acme.sh:多种安装方法,您可以选择最适合自己的方式 官方
# 1.通过 curl 安装 curl https://get.acme.sh | sh -s email=my@example.com # 2.通过 wget 安装 wget -O - https://get.acme.sh | sh -s email=my@example.com # 3.通过 git 克隆 git clone https://github.com/acmesh-official/acme.sh.git cd ./acme.sh ./acme.sh --install -m my@example.com
- 3. 简化调用:使用 alias 命令来简化对 acme.sh 的调用
alias acme.sh=~/.acme.sh/acme.sh
- 4. 验证安装:安装完成后,使用以下命令确认是否安装成功
acme.sh --version
- 5. 设置默认的证书颁发机构(CA) 官方文档
acme.sh --set-default-ca --server letsencrypt 或 acme.sh --set-default-ca --server lhttps://acme-v02.api.letsencrypt.org/directory
- 6. 配置 DNS API 密钥(以阿里云 DNS 为例)其他DNS参考 官方文档
export Ali_Secret="API_ID" export Ali_Key="API_密钥"
- 7-1. 申请 SSL 证书(以阿里云 DNS 为例)
acme.sh --issue --dns dns_ali -d example.com -d *.example.com --keylength 2048
- 7-2. 证书文件说明
[root@xxx acme.sh]# cd ~/.acme.sh/junkai.cc [root@xxx junkai.cc]# ll -h 总用量 32K -rw-r--r-- 1 root root 1.8K 9月 29 01:27 ca.cer # 证书颁发机构(CA)证书 -rw-r--r-- 1 root root 3.5K 9月 29 01:27 fullchain.cer # 包含证书和中间 CA 证书的完整链 -rw-r--r-- 1 root root 1.8K 9月 29 01:27 junkai.cc.cer # 针对 junkai.cc 的 SSL 证书 -rw-r--r-- 1 root root 880 9月 29 01:32 junkai.cc.conf # junkai.cc 的配置文件 -rw-r--r-- 1 root root 1.0K 9月 29 01:26 junkai.cc.csr # 证书签名请求文件 -rw-r--r-- 1 root root 198 9月 29 01:26 junkai.cc.csr.conf # 用于生成 CSR 的配置文件 -rw------- 1 root root 1.7K 9月 29 01:25 junkai.cc.key # 私钥文件,只有根用户可访问
- 8. 安装证书:将证书安装到指定位置,以供 Nginx 使用(以宝塔 为例)
acme.sh --install-cert -d example.com -d *.example.com \ --key-file /www/server/panel/vhost/cert/example.com/privkey.pem \ --fullchain-file /www/server/panel/vhost/cert/example.com/fullchain.pem \ --reloadcmd "service nginx reload"
查询 cron 自动续订证书任务
crontab -l 22 14 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null # 每天的 14:22 执行任务,执行 acme.sh 的 cron 任务,指定主目录为 /root/.acme.sh > /dev/null: 将输出重定向到 /dev/null,即丢弃所有输出,不记录到任何文件 # 证书将每60天自动更新一次。
其他命令
# 升级 acme.sh acme.sh --upgrade # 自动升级 acme.sh --upgrade --auto-upgrade # 禁止升级 acme.sh --upgrade --auto-upgrade # 安装 cron 任务以自动续订证书 acme.sh --install-cronjob # 卸载 cron 任务 acme.sh --uninstall-cronjob # 执行 cron 任务以续订所有证书 acme.sh -cron # 列出所有证书 acme.sh --list # 显示 acme.sh 配置account.conf acme.sh --info # 显示特定域名的配置 acme.sh --info -d junkai.cc # 删除证书 acme.sh --remove -d example.com
结语
虽然宝塔面板自带acme.sh功能,但acme.sh本身的强大和灵活性使其成为管理SSL证书的更佳选择。通过acme.sh,用户不仅可以轻松实现SSL证书的自动续订,还能利用其对多种DNS服务的支持,确保网站安全高效运行。希望本文能够帮助您更好地理解和使用acme.sh,从而提升网站的安全性与稳定性。
常见问题 (FAQ)
原文链接:https://junkai.cc/508.html,转载请注明出处~~~
评论0