AllinSSL 原创
简介
核心优势
- 一站式管理: 在一个平台集中管理所有 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
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl
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 的登录信息,请妥善保存。如图:
- 假如使用 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 ID
和AccessKey Secret
,请立即下载 CSV 文件或复制保存。警告
注意:
AccessKey Secret 仅显示一次
,后续无法查看或找回
填写 API Key
使用管理员账号登录 ALLinSSL
后台,在左侧导航栏选择 添加授权API
。点击"添加"按钮,会弹出一个表单让你选择并填写不同类型的授权信息:
- 名称 (Name): 为此授权起一个易于识别的名称。
- 授权 API 类型 (Provider/Type): 下拉选择需要添加凭证的服务类型。
- 授权 API 凭证 (Credential): 输入从阿里云获取的
AccessKey ID
和AccessKey Secret
。
证书申请
点击左侧导航栏的 证书申请
按钮,选择免费证书
,点击立即申请
按钮。输入需要申请证书的域名
,选择 DNS 服务商,最后点击确认
域名填写示例
seasir.top,*.seasir.top
证书管理
在左侧导航栏选择 证书管理
,可以看到所有已申请的证书。可以查看证书的域名、品牌,来源、剩余天数、到期时间等信息。然后将证书下载到本地上传到服务器即可。
这里将证书上传到服务器的目录为/etc/letsencrypt/live/teek.seasir.top/cert.pem
/etc/letsencrypt/live/teek.seasir.top/key.pem;
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 服务
nginx -s reload
如果域名配置了 CDN,需要将证书上传到 CDN 的证书管理中进行配置,配置后过程大约需要 10 分钟左右。
升级
# 停止容器
docker stop allinssl
# 删除容器(若需保留数据,需先备份挂载卷)
docker rm allinssl
拉取最新镜像
docker pull allinssl/allinssl:latest
使用最新镜像重新运行容器
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
验证更新
# 查看镜像版本(确保为最新)
docker images allinssl/allinssl:latest
# 检查容器状态
docker ps
重新启动容器(如需要,针对 docker 容器已经在运行但无法访问)
docker restart allinssl
邮箱配置
邮箱名称:随意填写,例如谷歌邮箱
SMTP 服务器:smtp.gmail.com
SSL/TLS 连接:启用
SMTP 端口:465
密码:谷歌邮箱的应用密码
提示
获取谷歌邮箱的应用密码查看官方文档:点击查看
发送人邮箱:填写发送人的邮箱
接收邮箱: 用于 SSL 证书部署成功或者失败通知接收人的邮箱