# sslfree **Repository Path**: wuke121/sslfree ## Basic Information - **Project Name**: sslfree - **Description**: 免费ssl - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-25 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 宝塔 SSL 证书自动签发与续签工具 一键为宝塔面板所有站点签发并自动续签 Let's Encrypt SSL 证书,告别手动续期。 ## 一键使用 ```bash curl -fsSL https://gitee.com/wuke121/sslfree/raw/main/bt_ssl_auto.sh | bash ``` ## 功能 - 自动安装 acme.sh(GitHub 失败自动切换 Gitee 镜像) - 自动扫描宝塔所有站点和证书 - 对过期或 10 天内到期的证书重新签发 - 自动部署到宝塔证书目录并 reload nginx - 自动配置每周一 02:00 的续签 cron 任务 ## 使用方式 | 命令 | 作用 | |---|---| | `curl -fsSL https://gitee.com/wuke121/sslfree/raw/main/bt_ssl_auto.sh \| bash` | 一键安装并续签 | | `curl -fsSL https://gitee.com/wuke121/sslfree/raw/main/bt_ssl_auto.sh \| bash -s -- --check` | 仅检查证书状态 | | `curl -fsSL https://gitee.com/wuke121/sslfree/raw/main/bt_ssl_auto.sh \| bash -s -- --force` | 强制重新签发所有证书 | ## 续签策略 - **检查频率**: 每周一 02:00 自动执行 - **续签阈值**: 证书剩余天数 ≤ 10 天才续签 - **签发方式**: acme.sh + HTTP-01 webroot 验证 - **CA**: Let's Encrypt / ZeroSSL(免费、90 天有效期) ## 适用环境 - 宝塔面板(含 `/www/server/panel` 目录) - CentOS 7 / Ubuntu / Debian 等 Linux 系统 - nginx 作为 Web 服务器 - root 权限 ## 文件位置 | 文件 | 说明 | |---|---| | 主脚本 | `bt_ssl_auto.sh`(Gitee 仓库) | | 续签脚本 | `/root/renew_ssl.sh`(自动生成) | | 日志 | `/var/log/ssl_renew.log` | | 证书 | `/www/server/panel/vhost/cert/<域名>/` | ## 工作原理 1. 扫描 `/www/server/panel/vhost/nginx/*.conf` 获取所有站点 2. 对每个站点读取 `server_name` 和 `root`(webroot) 3. 检查对应证书的到期时间 4. 对过期或 10 天内到期的证书用 acme.sh + HTTP-01 验证签发新证书 5. 安装到 `/www/server/panel/vhost/cert/<域名>/` 并 reload nginx 6. 部署 `/root/renew_ssl.sh` 续签脚本并加 cron(每周一 02:00) ## 常见问题 **Q: 80 端口不通怎么办?** A: 确保安全组/防火墙开放 80 端口(HTTP-01 验证需要)。 **Q: 已经过期的证书能续签吗?** A: 可以,脚本会直接重新签发(不是续期)。 **Q: 如何查看日志?** A: `tail -f /var/log/ssl_renew.log` **Q: 如何手动测试续签?** A: `bash /root/renew_ssl.sh` **Q: 如何修改续签阈值?** A: 编辑 `/root/renew_ssl.sh`,修改 `RENEW_DAYS=10` 为你想要的天数。 **Q: 如何修改执行频率?** A: `crontab -e` 修改 `0 2 * * 1` 为你想要的 cron 表达式。