power
This commit is contained in:
68
README.md
68
README.md
@@ -4,13 +4,29 @@
|
||||
|
||||
## 🎯 项目概述
|
||||
|
||||
本项目包含三个核心脚本,用于解决 SSL 证书管理的常见痛点:
|
||||
本项目包含四个核心脚本,用于解决 SSL 证书管理的常见痛点:
|
||||
- **新域名证书创建**:一键为新域名创建 Let's Encrypt SSL 证书
|
||||
- **自动证书更新**:智能检测证书有效期并自动更新
|
||||
- **环境诊断**:全面检测 ACME 挑战环境配置
|
||||
- **一键管理**:简化复杂的证书管理流程
|
||||
|
||||
## 📋 功能特性
|
||||
|
||||
### 🆕 新域名证书创建 (`create_new_domain_cert.sh`)
|
||||
- **交互式向导**:友好的中文交互界面,引导用户完成证书创建
|
||||
- **自动安装 acme.sh**:智能检测并自动安装/升级 acme.sh 工具
|
||||
- **智能验证**:自动验证域名格式和端口范围(1-65535)
|
||||
- **Webroot 自动配置**:自动创建和授权 ACME 挑战目录
|
||||
- **配置冲突清理**:智能检测并清理可能存在的 nginx 配置冲突
|
||||
- **证书有效性检测**:检查现有证书状态,避免重复申请
|
||||
- **智能重试机制**:支持 3 次自动重试,采用指数退避策略
|
||||
- **域名可达性检测**:自动检测域名 80 端口可达性
|
||||
- **多方式 nginx 重载**:支持 systemctl、service、nginx -s 等多种重载方式
|
||||
- **幂等性支持**:自动备份旧配置,支持重复运行
|
||||
- **彩色中文日志**:详细的操作日志,便于阅读和调试
|
||||
- **一键 HTTPS 配置**:自动生成 HTTP → HTTPS 强制跳转配置
|
||||
- **最终验证流程**:测试 HTTPS 访问、HTTP 跳转、SSL 证书有效性
|
||||
|
||||
### 🔄 自动证书更新 (`update_acme_cert.sh`)
|
||||
- **智能过期检测**:自动检查证书剩余有效期(默认30天预警)
|
||||
- **多种更新模式**:支持自动更新、强制更新、仅安装模式
|
||||
@@ -74,7 +90,29 @@ location ^~ /.well-known/acme-challenge/ {
|
||||
|
||||
## 📖 使用指南
|
||||
|
||||
### 1. 环境诊断(推荐先运行)
|
||||
### 1. 新域名证书创建
|
||||
|
||||
为新域名快速创建 Let's Encrypt SSL 证书:
|
||||
|
||||
```bash
|
||||
# 交互式创建(推荐)
|
||||
sudo ./create_new_domain_cert.sh
|
||||
```
|
||||
|
||||
脚本将引导您完成以下步骤:
|
||||
1. **输入域名**:例如 `example.com`
|
||||
2. **输入后端端口**:例如 `3000`
|
||||
3. **指定证书目录**:默认 `/etc/nginx/tls/example.com`
|
||||
|
||||
创建流程包括:
|
||||
- 自动安装/升级 acme.sh
|
||||
- 创建并授权 ACME 挑战目录
|
||||
- 清理现有 nginx 配置冲突
|
||||
- 申请 Let's Encrypt 证书
|
||||
- 生成 HTTPS 配置
|
||||
- 验证证书和跳转
|
||||
|
||||
### 2. 环境诊断(推荐先运行)
|
||||
|
||||
在使用证书更新功能前,建议先运行环境诊断脚本:
|
||||
|
||||
@@ -96,7 +134,7 @@ sudo ./acme_test.sh example.com /var/www/letsencrypt
|
||||
- ✅ HTTP 访问可用性
|
||||
- ✅ 端口监听状态
|
||||
|
||||
### 2. 证书更新
|
||||
### 3. 证书更新
|
||||
|
||||
#### 基本用法
|
||||
```bash
|
||||
@@ -127,7 +165,7 @@ sudo ./update_acme_cert.sh
|
||||
8. **Nginx 重载**:使新证书生效
|
||||
9. **最终验证**:确认证书安装成功
|
||||
|
||||
### 3. 配置文件
|
||||
### 4. 配置文件
|
||||
|
||||
#### 主要配置项
|
||||
编辑脚本文件修改以下配置:
|
||||
@@ -154,6 +192,28 @@ LOG_FILE="/var/log/acme_update.log"
|
||||
- **自定义 CA**:修改 `--server` 参数
|
||||
- **通知设置**:可集成邮件/Webhook 通知
|
||||
|
||||
### 新域名证书创建脚本配置项
|
||||
|
||||
`create_new_domain_cert.sh` 的主要配置项:
|
||||
|
||||
```bash
|
||||
# acme.sh 路径
|
||||
ACME_SH="/root/.acme.sh/acme.sh"
|
||||
|
||||
# ACME 挑战目录
|
||||
WEBROOT="/var/www/letsencrypt"
|
||||
|
||||
# Nginx 配置目录
|
||||
NGINX_CONF_DIR="/etc/nginx/conf.d"
|
||||
|
||||
# Nginx sites 目录
|
||||
NGINX_AVAILABLE="/etc/nginx/sites-available"
|
||||
NGINX_ENABLED="/etc/nginx/sites-enabled"
|
||||
|
||||
# 管理员邮箱(用于 acme.sh)
|
||||
EMAIL="admin@$(hostname -f)"
|
||||
```
|
||||
|
||||
## 🔧 高级功能
|
||||
|
||||
### 证书指纹验证
|
||||
|
||||
Reference in New Issue
Block a user