# ALLinSSL - SSL证书全流程管理工具

## 项目介绍

ALLinSSL 是一个集证书申请、管理、部署和监控于一体的SSL证书全生命周期管理工具。本工具可帮助用户轻松管理多个网站的SSL证书，提供自动化的证书申请、更新和部署流程，并实时监控证书状态，确保网站安全持续运行。

## 主要功能

- **证书申请**: 支持通过ACME协议从Let's Encrypt等CA自动申请免费证书
- **证书管理**: 集中管理所有SSL证书，包括手动上传和自动申请的证书
- **证书部署**: 支持一键部署证书到多种平台，如阿里云、腾讯云、宝塔面板、1Panel等
- **站点监控**: 实时监控站点SSL证书状态，提前预警证书过期
- **自动化任务**: 支持定时任务，自动续期证书并部署
- **多平台支持**: 支持多种DNS提供商（阿里云、腾讯云等）的DNS验证方式

## 技术栈

- **后端**: Go语言
- **前端**: HTML/CSS/JavaScript
- **数据存储**: SQLite
- **证书管理**: ACME协议 (Let's Encrypt)
- **定时任务**: 内置调度器

## 安装说明

### 系统要求

- 操作系统: Linux
- 权限要求: 需要有读写权限创建数据目录

### 安装步骤
#### 1. 通过官网安装脚本安装
#### 2. 编译安装：
  - 编译安装时需要注意可执行文件的名称和运行目录，在`allinssl.sh`中需要修改为对应的名称和路径否则可能导致脚本不可用
  - 推荐安装路径为`/www/allinssl/`，可执行文件名为`allinssl`，建议将`allinssl.sh`软链到`/usr/bin/`目录下
  - 安装：
    1. 下载最新版本的release包并解压
    2. 编译go程序（allinssl）
    3. 运行可执行文件启动服务
       - Linux: 执行 `./allinssl start`

### 首次启动设置

1. 首次启动后，设置管理员账号和密码
2. 设置安全入口和端口号
3. 完成初始设置后，即可通过 `http://your-ip:your-port/your-secure-entry` 访问管理界面

## 使用指南

### 自动化部署

#### 证书申请
1. 添加DNS验证凭证（支持阿里云、腾讯云等）
2. 输入需要申请证书的域名
3. 输入邮箱地址（用于接收ca的通知）

#### 证书上传
1. 选择手动上传证书
2. 粘贴证书和私钥内容

#### 证书部署

1. 选择申请或上传的证书
2. 选择部署目标（支持阿里云CDN、腾讯云CDN、宝塔面板、1Panel等）
3. 添加部署凭证（如阿里云、腾讯云的API密钥）

#### 通知
1. 配置通知通道
2. 输入通知内容和主题


### 站点监控

1. 添加需要监控的站点域名
2. 系统将自动检测站点证书状态
3. 设置证书到期提醒阈值（默认为30天）
4. 当证书接近过期时，系统将发出提醒
5. 连续多次检测网站异常时，系统将发出提醒


## 命令行操作

```bash
# 基本操作
allinssl 1: 启动服务
allinssl 2: 停止服务
allinssl 3: 重启服务
allinssl 4: 修改安全入口
allinssl 5: 修改用户名
allinssl 6: 修改密码
allinssl 7: 修改端口

# Web服务管理
allinssl 8: 关闭web服务
allinssl 9: 开启web服务
allinssl 10: 重启web服务

# 后台任务管理
allinssl 11: 关闭后台自动调度
allinssl 12: 开启后台自动调度
allinssl 13: 重启后台自动调度

# 系统管理
allinssl 14: 关闭https
allinssl 15: 获取面板地址
allinssl 16: 更新ALLinSSL到最新版本（文件覆盖安装）
allinssl 17: 卸载ALLinSSL
```

## 许可证

本项目使用 [LICENSE](./LICENSE) 文件中规定的许可证进行授权。
