acme.sh可实现Apache HTTPS自动续签:先一键安装并绑定邮箱,切换CA为Let's Encrypt,再通过--issue申请证书、--install-cert安装至指定路径并配置--reloadcmd重启Apache,其默认每日检查、到期前60天自动续期。
用 acme.sh 在 Apache 上实现 HTTPS 自动续签
acme.sh 是轻量、无依赖的 shell 脚本,比 certbot 更灵活,尤其适合自定义路径、多环境或需通配符证书的场景。它不修改 apache 配置文件本身,而是通过 --install-cert 将证书复制到指定位置,并在更新后执行 reload 命令触发 apache 重载配置。
安装与初始化 acme.sh
以 root 或有 sudo 权限用户操作:
- 运行一键安装并绑定邮箱:
curl https://get.acme.sh | sh -s email=your@example.com - 使命令生效:
source ~/.bashrc(或重新登录) - 切换默认 CA 为 Let's Encrypt:
acme.sh --set-default-ca --server letsencrypt - 开启自动升级(推荐):
acme.sh --upgrade --auto-upgrade
申请并安装证书到 Apache
假设域名是 example.com,Apache 网站根目录为 /var/www/html,且已启用 mod_ssl 和 mod_rewrite:
- HTTP 验证方式(最常用):
acme.sh --issue -d example.com -d www.example.com --webroot /var/www/html - Apache 自动识别方式(需确保 Apache 配置中已定义该域名的 VirtualHost):
acme.sh --issue -d example.com --apache - 安装证书到 Apache 可读路径(关键步骤,不可跳过):
acme.sh --install-cert -d example.com \<br> --key-file /etc/ssl/private/example.com.key \<br> --fullchain-file /etc/ssl/certs/example.com.fullchain.pem \<br> --reloadcmd "systemctl reload apache2"
注意:证书路径需确保 Apache 进程有读取权限(如 /etc/ssl/private 目录权限建议为 700,私钥文件为 600)。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
验证自动续签是否就绪
acme.sh 默认添加了每日凌晨 0:00 的 cron 任务(可通过 crontab -l 查看),但需确认两点:
- 执行
acme.sh --renew -d example.com --dry-run,若输出 "success" 表示模拟续期通过 - 检查
--reloadcmd中的命令能否手动执行成功,例如:systemctl reload apache2不报错 - 证书实际有效期为 90 天,acme.sh 默认在到期前 60 天开始尝试续期,无需额外设置时间
Apache HTTPS 配置要点
在站点 VirtualHost 中(如 /etc/apache2/sites-available/example.com.conf)启用 HTTPS 并强制跳转:
- 监听 443 端口,加载 SSL 模块:
SSLEngine on - 指定证书路径:
SSLCertificateFile /etc/ssl/certs/example.com.fullchain.pem
SSLCertificateKeyFile /etc/ssl/private/example.com.key - 添加 HTTP → HTTPS 重定向(在 80 端口 VirtualHost 中):
RewriteEngine on<br>RewriteCond %{HTTPS} off<br>RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L] - 重启 Apache 生效:
systemctl restart apache2
不复杂但容易忽略

















