网站SSL证书无限续杯
2025-07-24 - kblog
无限续签的SSL证书解决方案中,有两种方案:
一、Caddy Server 原生方案:基于Let's Encrypt的自动续签(推荐)
Caddy Server 内置 CertMagic 组件,可自动完成Let's Encrypt证书的申请、部署、续签,无需手动干预,是无限续签的最优解。
1. 核心原理
CertMagic 基于ACME协议与Let's Encrypt交互,实现:
- 首次启动时自动验证域名所有权(HTTP-01/DNS-01)并签发证书;
- 证书到期前30天自动静默续期(无需人工操作);
- 自动将证书部署到Caddy Server,保障网站始终启用HTTPS。
2. 操作步骤
(1)安装Caddy Server
- Linux(Ubuntu/Debian):
curl -fsSL https://get.caddyserver.com | bash -s personal # 个人版(免费)
- Windows:
从Caddy官网下载二进制文件,添加至PATH
环境变量;或通过Docker安装:docker run --name caddy -p 80:80 -p 443:443 caddy # 映射80/443端口
(2)配置Caddyfile
创建Caddyfile
(默认路径:/etc/caddy/Caddyfile
或当前目录),配置域名与网站根目录:
example.com { # 替换为你的域名
root * /var/www/html # 网站文件目录(需提前创建并赋予权限)
file_server # 静态文件服务(若为反向代理,替换为reverse_proxy localhost:端口)
tls # 启用自动TLS(无需手动指定证书,CertMagic自动处理)
}
(3)启动与验证
- 启动Caddy:
sudo systemctl start caddy # Linux系统服务 # 或Docker容器:docker start caddy
- 验证HTTPS:访问
https://example.com
,地址栏应显示安全锁标志(HTTPS)。
(4)无限续签保障
CertMagic 会自动监控证书有效期,到期前30天触发续期流程(无需人工干预)。可通过以下命令检查证书状态:
caddy cert status example.com # 查看证书剩余有效期
二、手动集成JoySSL证书(适合需要自定义证书的场景)
若需使用JoySSL(国内CA,支持泛域名/通配符证书)的免费证书,需手动导入证书文件并配置Caddy Server的自动续期策略(因JoySSL未直接集成CertMagic)。
1. 前提条件
- 已在JoySSL官网()注册账号,并申请免费DV证书(支持无限续期);
- 已下载JoySSL证书文件(包含
.crt
公钥、.key
私钥,路径如:/path/to/cert.pem
、/path/to/key.key
)。
2. 操作步骤
(1)修改Caddyfile
在Caddyfile
中手动指定证书路径,启用TLS:
example.com {
root * /var/www/html
file_server
tls /path/to/cert.pem /path/to/key.key # 替换为JoySSL证书路径
}
(2)配置自动续期(关键)
由于JoySSL证书需手动续期,需通过脚本+定时任务实现自动更新:
- 步骤1:编写续期脚本(如
renew_cert.sh
):#!/bin/bash # 下载JoySSL新证书(替换为你的API命令,参考JoySSL文档) curl -X POST "https://api.joyssl.com/v1/cert/renew" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -o /path/to/new_cert.pem \ -o /path/to/new_key.key # 重启Caddy Server使新证书生效 systemctl restart caddy
- 步骤2:设置定时任务(如每月1日执行续期):
crontab -e # 编辑定时任务 # 添加以下内容(每月1日0点执行脚本): 0 0 1 * * /bin/bash /path/to/renew_cert.sh >> /var/log/cert_renew.log 2>&1
(3)验证续期
- 手动执行脚本,检查Caddy日志(
/var/log/caddy/access.log
)确认证书是否更新; - 定期检查定时任务执行状态(
crontab -l
)。
三、方案对比
方案 | 优势 | 适用场景 | 续签复杂度 |
---|---|---|---|
Caddy原生(Let's Encrypt) | 自动续签、无需手动干预、全球信任 | 生产环境、国际网站 | 零复杂度 |
手动集成JoySSL | 支持泛域名、国内CA、自定义证书 | 国内网站、需要泛域名支持 | 需配置脚本+定时任务 |
注意事项
- Let's Encrypt限制:免费证书有效期为90天,需确保域名解析正常(80/443端口可访问);
- JoySSL证书:免费证书需定期续期(每年可申请20个名额),需关注JoySSL官网通知;
- 权限问题:Caddy Server需拥有证书文件的读取权限(
chmod 640 /path/to/cert.pem
); - 日志监控:定期检查Caddy日志(
journalctl -u caddy
),及时发现证书续期失败问题。
以上方案均支持无限续签,可根据实际需求选择。若追求自动化,优先选择Caddy原生方案;若需自定义证书(如泛域名),则选择手动集成JoySSL。
- END -
54
微服务中消息总线架构设计应用1

当一个O2O电商系统到达一定规模之后,就需要考虑系统的可扩展性、松耦合和组件化。一般采用的都是基于时下比较流行SpringCloud和Dubbo的分布式的微服务的架构模式,虽然模块间能够独立部署了,但是模块间的还是强依赖关系,每次改动都需要重新发版上线,产品迭代速度又快,使用分布式的消息总线设计就可以解决这些问题。