KEJILION.SH 是一个综合性的 Linux 服务器管理工具箱,旨在通过直观的命令行界面简化系统管理、监控和部署任务。这个强大的 shell 脚本集合为初学者和经验丰富的管理员提供了高效管理 Linux 环境的基本工具。
在 HTTPS 成为网站标配的今天,SSL 证书的申请、部署与续签已成为日常运维的刚需。k ssl 命令封装了 Let's Encrypt 证书全流程操作,让证书管理变得简单高效。本文为你整理一份完整的使用指南。
📋 一、基础命令速览
| 命令 | 作用 | 使用场景 |
|---|---|---|
k ssl |
快速申请SSL证书(交互式) | 单个域名申请,按提示输入 |
k ssl yourdomain.com |
为指定域名申请SSL证书 | 批量脚本,自动化部署 |
k ssl ps |
查看所有证书到期状态 | 定期检查证书健康度 |
🔍 二、核心命令详解
1️⃣ 快速申请证书:k ssl
bash
k ssl
功能:进入交互式证书申请流程
操作步骤:
- 输入目标域名
- 系统自动检测 DNS 解析状态
- 调用 Let's Encrypt 申请免费证书
- 自动配置 Nginx 并热加载
证书存放位置:
arduino
证书文件:/home/web/certs/{域名}_cert.pem
私钥文件:/home/web/certs/{域名}_key.pem
2️⃣ 指定域名申请:k ssl yourdomain.com
bash
k ssl yourdomain.com
功能:直接为指定域名申请证书,跳过交互步骤
优势:
- ✅ 适合 Shell 脚本批量调用
- ✅ 支持 CI/CD 自动化部署
- ✅ 参数简洁,域名无需带协议头
⚠️ 注意:域名参数不要包含
http://或https://
3️⃣ 证书状态查询:k ssl ps
bash
k ssl ps
功能:显示所有已申请证书的健康状态
输出信息:
- 🌐 域名
- 📅 颁发日期
- ⏰ 过期日期
- ⏳ 剩余天数
建议:配合 cron 每天执行,及时发现即将过期证书,避免服务中断。
🔄 三、自动化续签机制
虽然 k ssl 未提供直接续签命令,但系统内置了智能续签脚本:
手动执行续签检查
bash
./auto_cert_renewal.sh
配置定时任务(推荐)
bash
# 编辑 crontab
crontab -e
# 每天凌晨 3 点自动检查续签
0 3 * * * /path/to/auto_cert_renewal.sh
续签流程说明
graph LR
A[检测15天内到期证书] --> B[停止Nginx+临时放行防火墙]
B --> C[Docker Certbot申请新证书]
C --> D[自动部署+重启服务]
D --> E[记录日志+恢复防火墙]
📁 四、证书文件结构
bash
/home/web/certs/
├── yourdomain.com_cert.pem # 公钥证书(PEM格式)
├── yourdomain.com_key.pem # 私钥文件(请妥善保管)
├── ticket12.key # TLS 1.2 会话票证
└── ticket13.key # TLS 1.3 会话票证
🔐 安全提示:私钥文件权限建议设置为
600,仅 root 可读
⚡ 五、实用示例集锦
🔄 批量申请多个域名
bash
for domain in site1.com site2.com site3.com; do
k ssl $domain
done
📊 定时检查证书状态
bash
# 每周一早上9点检查,日志留存
0 9 * * 1 /usr/local/bin/k ssl ps > /var/log/ssl_check.log
🔎 查看证书详细信息
bash
openssl x509 -in /home/web/certs/yourdomain.com_cert.pem -text -noout
💾 定期备份证书
bash
tar -czf certs_backup_$(date +%Y%m%d).tar.gz /home/web/certs/
🚨 六、注意事项清单
| 项目 | 说明 |
|---|---|
| 🌐 域名解析 | 申请前确保 A 记录已正确指向服务器 IP |
| 🔌 80 端口 | HTTP-01 验证需临时开放 80 端口 |
| 🧱 防火墙 | 脚本会自动处理 iptables/firewalld 规则 |
| 📅 有效期 | Let's Encrypt 证书有效期为 90 天 |
| 🔄 续签限制 | 同一域名每周最多续签 5 次,避免滥用 |
🎯 七、最佳实践工作流
bash
# 1️⃣ 首次申请证书
k ssl yourdomain.com
# 2️⃣ 每周定期检查状态
k ssl ps
# 3️⃣ 配置自动续签(强烈推荐)
crontab -e
# 添加:0 3 * * * /path/to/auto_cert_renewal.sh >> /var/log/ssl_renewal.log 2>&1
# 4️⃣ 每月备份证书文件
tar -czf /backup/certs_$(date +%Y%m).tar.gz /home/web/certs/