Skip to content

AllinSSL 原创

简介

提示

GitHub Release

ALLinSSL 是一款开源免费的 SSL 证书自动化管理平台一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,支持跨云环境和多 CA (coding~),告别繁琐配置和高昂费用。

核心优势

  • 一站式管理: 在一个平台集中管理所有 SSL/TLS 证书,无论它们部署在何处。
  • 全流程自动化: 从申请、验证、部署到续期,实现端到端的自动化,解放人力。
  • 可视化操作: 提供直观的 Web UI 和仪表盘,无需记忆复杂的命令行。
  • 广泛兼容: 支持 Let's Encrypt 等免费 CA,兼容多种 DNS 提供商、云服务商(腾讯云、阿里云等)、服务器部署方式(SSH、宝塔、1Panel)以及 CDN、WAF 等应用。
  • 开源免费: 核心功能完全免费,采用 AGPL-3.0 许可证,鼓励社区参与和贡献。
  • 灵活扩展: 可通过工作流引擎自定义复杂的部署逻辑,满足个性化需求。
  • 与仅依赖命令行的 Certbot 或 acme.sh 相比,ALLinSSL 提供了更友好的用户体验;与闭源且收费的商业方案相比,ALLinSSL 则提供了更高的性价比和透明度

系统要求

  • 操作系统:Linux (推荐 CentOS 7+, Ubuntu 18.04+, Debian 9+)
  • 硬件:至少 1 核 CPU, 512MB RAM, 1GB 可用磁盘空间
  • 网络:需要连接互联网以下载依赖和申请证书

安装

提示

推荐使用 二进制包 进行安装,这是最快捷方便的方式。安装后记得开放对应的端口默认 7979

bash
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl
bash
docker run -itd \
  --name allinssl \
  -p 7979:8888 \
  -v /www/allinssl/data:/www/allinssl/data \
  -e ALLINSSL_USER=allinssl \
  -e ALLINSSL_PWD=allinssldocker \
  -e ALLINSSL_URL=allinssl \
  allinssl/allinssl:latest

警告

如果您安装了安全软件,请在安全软件中添加 /usr/bin/allinssl/www/allinssl/allinssl 的信任,否则可能会导致 ALLinSSL 无法正常运行。

如果安装了宝塔面板并且安装了系统加固插件,请在系统加固插件中添加 /usr/bin/allinssl/www/allinssl/allinssl 的信任。或者临时关闭系统加固插件,安装完成后重新开启。

访问系统

  • 假如使用二进制方式安装完成后,终端界面会显示 ALLinSSL 的登录信息,请妥善保存。如图:

250517214525501.png

  • 假如使用 docker 方式安装完成后,使用IP+端口+allinssl进行访问,例如:http://192.168.80.128:7979/allinssl

    提示

    用户名:allinssl 密码:allinssldocker

添加授权 API

我的 DNS 是阿里云的,这里以阿里云为例,更多 DNS 提供商请参考官方文档:点击跳转

  • AccessKeyId: 阿里云 RAM 用户的 AccessKey ID。
  • AccessKeySecret: 对应的 AccessKey Secret。

提示

权限建议: 为了安全,建议创建一个拥有所需最小权限(例如 DNS 管理 AliyunDNSFullAccess,CDN 管理 AliyunCDNFullAccess,WAF 管理相关权限等)的 RAM 用户,并使用其 AK/SK。

创建 RAM 用户

  • 登录阿里云控制台:使用主账号登录阿里云控制台,进入 RAM 访问控制 页面(https://ram.console.aliyun.com/)。
  • 创建用户:在左侧导航栏选择 身份管理 > 用户,点击 创建用户。填写用户信息(如登录名称、显示名称),并选择访问方式:
  • 控制台访问:若需通过控制台操作,启用此选项并设置密码(建议同时开启 MFA 多因素认证)。
  • OpenAPI 调用访问:若用于 API 调用,启用此选项,系统将自动生成 AccessKey(后续可在用户详情中手动创建)。
  • 完成创建:点击 确定 并通过安全验证(如手机短信),完成 RAM 用户创建。

分配 DNS 管理权限

  • 添加权限:在用户列表中点击目标用户名称,进入 权限管理 页面,点击 添加权限
  • 择系统策略:在 系统策略 中搜索并勾选 AliyunDNSFullAccess(完全管理云解析 DNS 的权限)。若需 CDN 或 WAF 管理权限,同时勾选 AliyunCDNFullAccess
  • 授权范围:授权范围选择 整个云账号,确认后点击 确定 完成权限绑定

生成 AccessKey

  • 进入用户详情:在 RAM 用户列表中点击目标用户名称,进入 认证管理 > AccessKey 页面。
  • 创建 AccessKey:点击 创建 AccessKey,阅读安全提示后勾选 我确认必须创建 AccessKey,并通过手机验证完成创建。
  • 保存密钥:系统将显示 AccessKey IDAccessKey Secret,请立即下载 CSV 文件或复制保存。

    警告

    注意:AccessKey Secret 仅显示一次,后续无法查看或找回

填写 API Key

使用管理员账号登录 ALLinSSL 后台,在左侧导航栏选择 添加授权API。点击"添加"按钮,会弹出一个表单让你选择并填写不同类型的授权信息:

  • 名称 (Name): 为此授权起一个易于识别的名称。
  • 授权 API 类型 (Provider/Type): 下拉选择需要添加凭证的服务类型。
  • 授权 API 凭证 (Credential): 输入从阿里云获取的 AccessKey IDAccessKey Secret

证书申请

点击左侧导航栏的 证书申请 按钮,选择免费证书,点击立即申请按钮。输入需要申请证书的域名,选择 DNS 服务商,最后点击确认

域名填写示例

sh
seasir.top,*.seasir.top

证书管理

在左侧导航栏选择 证书管理,可以看到所有已申请的证书。可以查看证书的域名、品牌,来源、剩余天数、到期时间等信息。然后将证书下载到本地上传到服务器即可。

这里将证书上传到服务器的目录为/etc/letsencrypt/live/teek.seasir.top/cert.pem /etc/letsencrypt/live/teek.seasir.top/key.pem;

nginx
server {
    listen 443 ssl http2;
    server_name teek.seasir.top;
    ssl_certificate /etc/letsencrypt/live/teek.seasir.top/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/teek.seasir.top/key.pem;
}

重启 nginx 服务

bash
nginx -s reload

如果域名配置了 CDN,需要将证书上传到 CDN 的证书管理中进行配置,配置后过程大约需要 10 分钟左右。

升级

bash
# 停止容器
docker stop allinssl

# 删除容器(若需保留数据,需先备份挂载卷)
docker rm allinssl

拉取最新镜像

bash
docker pull allinssl/allinssl:latest

使用最新镜像重新运行容器

bash
docker run -itd \
  --name allinssl \
  -p 7979:8888 \
  -v /www/allinssl/data:/www/allinssl/data \
  -e ALLINSSL_USER=allinssl \
  -e ALLINSSL_PWD=allinssldocker \
  -e ALLINSSL_URL=allinssl \
  allinssl/allinssl:latest

验证更新

bash
# 查看镜像版本(确保为最新)
docker images allinssl/allinssl:latest

# 检查容器状态
docker ps

重新启动容器(如需要,针对 docker 容器已经在运行但无法访问)

bash
docker restart allinssl

邮箱配置

邮箱名称:随意填写,例如谷歌邮箱

SMTP 服务器:smtp.gmail.com

SSL/TLS 连接:启用

SMTP 端口:465

密码:谷歌邮箱的应用密码

提示

获取谷歌邮箱的应用密码查看官方文档:点击查看

发送人邮箱:填写发送人的邮箱

接收邮箱: 用于 SSL 证书部署成功或者失败通知接收人的邮箱

最近更新