ACME-脚本使用
ACME Github 仓库
ACME 中文使用说明
acme.sh 的使用文档
介绍
ACME, Automatic Certificate Management Environment, 是一种用于自动化管理 SSL/TLS 证书的协议, 主要由 Let’s Encrypt (一个免费的 CA, 即证书颁发机构) 提出. 它允许客户端与证书颁发机构 (CA) 进行交互, 以便自动申请, 验证, 续订和撤销证书.
而 acme.sh
实现了 acme
协议, 可以从 let’s encrypt 生成免费的证书. 主要步骤为:
- 安装
acme.sh
- 生成证书
- copy 证书到 nginx/apache 或者其他服务
- 更新证书
- 更新 acme.sh
安装 acme.sh
1 |
|
- 邮箱设置用于接受通知
其会:
- 克隆 ACME 仓库到
$HOME/.acme.sh/
目录 - 向
.bashrc
或.zshrc
中加入一行脚本, 以加载$HOME/.acme.sh/acme.sh.env
文件 (会创建别名) - 将
"/home/jie/.acme.sh"/acme.sh --cron --home "/home/jie/.acme.sh" > /dev/null
加入当前用户的 crontab 文件
也就是把自动申请这些步骤都完成了. 其每天 0:00
点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书. (前提是后面把证书生成了吧)
可以用:
1 |
|
查看是否安装成功.
生成证书
使用 ACME 生成证书前, 可以通过 http
或 dns
方式来验证域名是否是自己的, 之后才能搞.
http 方式验证
该方式具体见官网.
1 |
|
(只需指定域名和网站根目录)acme.sh
会自动生成验证文件, 并放到网站的根目录, 然后自动完成验证, 最后会删除验证文件.
dns 方式验证
这种方式的好处是, 不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是, 如果不同时配置 Automatic DNS API, 使用这种方式 acme.sh
将无法自动更新证书, 每次都需要手动再次重新解析验证域名所有权.
1 |
|
之后根据输出在域名管理面板处添加 txt
记录.
解析完成后, 重新生成证书, 注意是 --renew
选项:
1 |
|
查看证书信息
1 |
|
ACME-脚本使用
http://example.com/2024/09/12/ACME-脚本使用/