使用acme.sh代替宝塔面板的自动续订免费SSL泛域名证书

引言:选择 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
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)

  • Q: 如何检查SSL证书的有效性?
    • A: 通过MYSSL SSLLabs等在线工具可以检查证书状态和安全性。
原文链接:https://junkai.cc/508.html,转载请注明出处~~~
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?