基于 AllinSSL 实现企业 SSL 证书自动续期与集中管理
一、AllinSSL 介绍
背景:SSL 证书管理的痛点
SSL/TLS 证书对于保障网站和在线服务的安全通信至关重要,是现代互联网不可或缺的一部分。然而,对于拥有多台服务器、多个域名或使用复杂云环境的用户来说,管理这些证书往往是一项繁琐且易出错的任务:
- 分散混乱: 证书散落在不同的服务器、云平台、CDN 或负载均衡器上,缺乏统一视图。
- 配置复杂: 手动申请、验证、配置和部署证书流程复杂,需要一定的技术背景,且容易出错。
- 续期难题: 证书有效期有限,忘记续期或续期操作失误可能导致服务中断和安全风险。
- 缺乏监控: 难以实时掌握所有证书的到期时间、健康状态和部署情况。
- 成本考量: 商业 SSL 管理工具或服务可能功能强大,但往往伴随着高昂的费用,尤其是对于需要管理大量证书的场景。
ALLinSSL:应运而生的解决方案
让 HTTPS 安全管理从”技术负担”变为”低门槛自动化”
核心优势
- 一站式管理: 在一个平台集中管理所有 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 可用磁盘空间
- 网络:需要连接互联网以下载依赖和申请证书
安装
推荐使用 二进制包 进行安装,这是最快捷方便的方式。
使用二进制安装命令 (推荐)
bash
curl -sSO http://allinssl.bt.cn/install_allinssl.sh && bash install_allinssl.sh allinssl
备用安装命令
bash
curl -sSO http://download.allinssl.com/install_allinssl.sh && bash install_allinssl.sh allinssl
其他安装方式
- 源码编译: 请参考README.md
- Docker: 复制以下命令直接安装,用户名:
allinssl密码:allinssldocker安全入口: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
安装好后,打开网站,输入你设置的账号和密码登录

授权 API 管理 (API Key Management)
此页面用于管理 ALLinSSL 与其他服务交互所需的凭证和 API 密钥。例如,申请证书时需要 DNS 提供商的 API 密钥进行域名验证,部署证书时可能需要服务器的 SSH 凭证、云平台的 API 密钥或面板的接口密钥。
集中管理这些授权信息可以避免在多个工作流中重复输入,并提高安全性。
点击【授权API管理】按钮——点击【添加授权API】按钮,然后会弹出输入框

名称:随便填
类型:选择你的服务器提供商
key 和 sercet:填写所在服务器提供商 生成的key和secret
阿里云

- AccessKeyId: 阿里云 RAM 用户的 AccessKey ID。
- AccessKeySecret: 对应的 AccessKey Secret。
- 权限建议: 为了安全,建议创建一个拥有所需最小权限(例如 DNS 管理
AliyunDNSFullAccess,CDN 管理AliyunCDNFullAccess,WAF 管理相关权限等)的 RAM 用户,并使用其 AK/SK。
- 权限建议: 为了安全,建议创建一个拥有所需最小权限(例如 DNS 管理
腾讯云
- SecretId: 腾讯云 CAM 用户的 Secret ID。
- SecretKey: 对应的 Secret Key。
- 权限建议: 同阿里云,建议创建拥有最小所需权限(例如 DNSPod 管理
QcloudDNSPodFullAccess,CDN 管理QcloudCDNFullAccess,WAF 管理相关权限等)的 CAM 子用户,并使用其凭证。
- 权限建议: 同阿里云,建议创建拥有最小所需权限(例如 DNSPod 管理
SSH接口指南
- 主机(Host IP): 目标服务器的 IP 地址或域名。
- SSH 端口 (Port): SSH 连接端口(默认填充 22)。
- 用户名 (Username): 登录服务器的用户名(默认填充 root)。
- 验证类型 (Authentication Type):
- 密码 (Password): 直接输入登录密码。
- SSH 密钥 (SSH Key)(可选): 如果你的私钥设置了密码保护,在此输入。

点击测试,显示“请求测试成功!”即表示成功!

自动化部署
点击【自动化部署】——【添加自动化部署】——选择【快速部署模板】——确认

自动执行可以自己定时,每天检查证书是否到期,到期自动续期证书

接下来介绍自动化证书申请流程配置
点击【申请证书】按钮,然后按照图示,填写你要申请ssl证书的域名,时间等

按照要求填写配置

点击【部署】按钮配置将证书部署到服务器上什么位置

点击【通知任务】按钮配置是否需要通知

保存!否则配置失效!

可以手动执行测试,检查失败原因


关于企微通知部署


证书下载

三、常见问题
SQLite证书秘钥查询
[root@localhost root]# cd allinssl_db_backup
[root@localhost allinssl_db_backup]# ls
accounts.db accounts.db-shm accounts.db-wal data.db monitor.db pid settings.db
[root@localhost allinssl_db_backup]# sqlite3 data.db "SELECT id, domains, LENGTH(key), LENGTH(cert) FROM cert;"
2|akuvox.alaric.work,*.akuvox.alaric.work|1675|3624
[root@localhost allinssl_db_backup]# sqlite3 data.db "SELECT key FROM cert WHERE id=2;"
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA15V6zuGUCXW82VGiiSkjOuPYnW8qO5CEFg+T9ZCIZFqIq5mz
2HDtzeCVzdU4olkClKwfuoxR1nvIFFMQ2mjG3dr7SOq0RNvstFAStCVb+w+n335/
2MA6sFqMd6wcePK4RwaVLavneFH1IP4wvenWxUr8PdqugrqAUqqWZVHEYq1t8ecx
fWP4l0zVtug3DDoHibPDZPy9Nscj1YA3V55hzKadQ8CDCMgL7FskPFoeYWxpdkkZ
Mtx8s8q140/HediJRICJCMJsL9AMZJBq39nOtjl4cWqSrht1I3KWt6p46nY5uZ88
69eM81Vaz75ExsLKcauXH9piCruJv0uL7PGXWwIDAQABAoIBAEBQjGguvOrLkLDm
nU49ExENC0EAeoF1nio0sIfofAAwUCidfJ1cJ12tnBNhgnlQg6gV54tQNFP/7pM9
qr/11So3m5LHzkrir22lm8bZhGTUaVkQFJT12CxnfxNuqbndc2NhD90ltTLchHw4
yRLHMbb/JVxQopJGkGTZFnAYojVrirbxKpGN+qflmSkgNZDpahKCC4clcGd6vDOF
aI3bpw4v8B0HlLcFfwjyyIVIDMBboJ9Dmstt42kyoxlR8CR20GhYn4rr4nO2ECKr
8lePYPtwAhuOtCiIFgTb5F8UpG03Ime1DjRIzZKKf7ugXSN4D4RuAslN8c/P5F8O
UlKgZwUCgYEA5f91h2Rfb4sg/NMy+Ngyx/4oYvOUAK0bPgvW5C5dLPGN6z6Ph46W
N1rw4jPsofAZtEQ0nWN++N/JH4WhmBVx5m5DtYpBeLru1Vv75I5rrufKzz+2OBoA
e0ZPaP42cv+AsWwCBsJKQLjYP1vnrMhX9ifvPOagFA3Y5FM7xAINbEUCgYEA7/Ta
02RiTXXH9+K9oivlvemlk5xCKXikMjmXQTF2Mo9c73gV2WFTvEy6cZaO3H+rMdyH
pCuxTZs38RDnzC0xNY/aODJWzDhjErBoGQuPSIX97kZ3h/bpyFna+IZ/y1AHKwAF
lP63T39T1s659FoVSe2GBi89p7O1fYvRVR0Cvx8CgYBdBID63dw/F2yi86OUwpNf
EOoygsJjt57h7BXfuOSUDalQ779Kmp8kChKL2WYlZB5xKniBAsFSU+daaUgeYuXq
xMN7g0vRUQDQp1/rYrIoTbRXNzQx4ko5kQkCtHU+8xiQKNd09lTjch57GWdMGMaC
VkpKPheVpLgIN6VfM1lMZQKBgQCwH7GqLWk137h5ytRTvxKu9VrR4IRzehhSwRCz
CkHuVGnrXuHyn0xdzpeendqYH6EhRPPOXT+TbdV+vGDW7WjMHp0WWGR7GvwlEJQn
peNyYN8EUHaVtnbb1pAxkE8mhMPuHOL7/IXB9Pwtk6jLoH81twCDc5M2j2IsFz77
0QJeEwKBgCGFOJZmMMHwiBGZI5VRaWLIPxHza0imo/N++z2sVyFNob3nyyGkkpr2
5cye7LdXkb5UlnOkE6O+JN4xGUcpon7KX8ww4IL9y6qyI92DraisFS84lh/OQNKF
a8bgwWkdkgcp74v2c/3Eh5McrsBuv3dWsybeTcmaHx/q2uRyLpi8
-----END RSA PRIVATE KEY-----
[root@localhost allinssl_db_backup]# sqlite3 data.db "SELECT cert FROM cert WHERE id=2;"
-----BEGIN CERTIFICATE-----
MIIFFDCCA/ygAwIBAgISBkBDLx6nnQboAp8D6zD7/nnZMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTEwHhcNMjUwODA4MDU0OTUyWhcNMjUxMTA2MDU0OTUxWjAdMRswGQYDVQQD
ExJha3V2b3guYWxhcmljLndvcmswggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDXlXrO4ZQJdbzZUaKJKSM649idbyo7kIQWD5P1kIhkWoirmbPYcO3N4JXN
1TiiWQKUrB+6jFHWe8gUUxDaaMbd2vtI6rRE2+y0UBK0JVv7D6fffn/YwDqwWox3
rBx48rhHBpUtq+d4UfUg/jC96dbFSvw92q6CuoBSqpZlUcRirW3x5zF9Y/iXTNW2
6DcMOgeJs8Nk/L02xyPVgDdXnmHMpp1DwIMIyAvsWyQ8Wh5hbGl2SRky3HyzyrXj
T8d52IlEgIkIwmwv0AxkkGrf2c62OXhxapKuG3Ujcpa3qnjqdjm5nzzr14zzVVrP
vkTGwspxq5cf2mIKu4m/S4vs8ZdbAgMBAAGjggI2MIICMjAOBgNVHQ8BAf8EBAMC
BaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAw
HQYDVR0OBBYEFM9cTbM0g5nEAkdUY1bEHRA/uyQRMB8GA1UdIwQYMBaAFMXPRqTq
9MPAemyVxC2wXpIvJuO5MDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAoYXaHR0
cDovL3IxMS5pLmxlbmNyLm9yZy8wMwYDVR0RBCwwKoIUKi5ha3V2b3guYWxhcmlj
LndvcmuCEmFrdXZveC5hbGFyaWMud29yazATBgNVHSAEDDAKMAgGBmeBDAECATAu
BgNVHR8EJzAlMCOgIaAfhh1odHRwOi8vcjExLmMubGVuY3Iub3JnLzkwLmNybDCC
AQIGCisGAQQB1nkCBAIEgfMEgfAA7gB1AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw
7w5CHrR+Tqo0AAABmIhwEn0AAAQDAEYwRAIgNLhSMayl+WssrRje8lWfuf4r5ZOi
9MARExqFlnWYji8CIHGQ1wEm3jJwgtzd4A7CLlgo3No/kV6Eluw0Urt5a7kJAHUA
7TxL1ugGwqSiAFfbyyTiOAHfUS/txIbFcA8g3bc+P+AAAAGYiHASjAAABAMARjBE
AiAbiXzR5n7XfKnxzjvsg/m6BxSf8teCO2VAYE/I/c0G4gIgY/w5qxag/V2n5w0E
lzXVp+hfRulX8z0VzKpbsD0bAnUwDQYJKoZIhvcNAQELBQADggEBAJD+fQvwxWjU
AlO551JUk3mPNsUaSn06+IeF1zReLFvaV/2a1CBPnctKz9Vnn6VEAWaLil4sLblT
gvKEY+B4dqEdmRA448DtKwzRPoJREMSdgdZ57/xyPDQUg1aZfP8kYkZz5NgzEuYi
RKUuDAkvP1VDA7lPA0hAdThPLey80P9Ka6WoIjjcILgqIZh97kevQ9x+Sls65/k2
IOJ+bH/mI/zHWx9mmzXhXjcB8k+69GyI4gkow9jpBa92kP0CHuwh2lHzTCt0Z8Pt
/bfWkG6772RVtdx3ZmZmX8erw3Ool57SCkDD82MJAy0BUwEvJpr9sPQZD3vpUhRX
91IYo7J+5j8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBjCCAu6gAwIBAgIRAIp9PhPWLzDvI4a9KQdrNPgwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjcwMzEyMjM1OTU5WjAzMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDEMMAoGA1UEAxMDUjExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAuoe8XBsAOcvKCs3UZxD5ATylTqVhyybKUvsVAbe5KPUoHu0nsyQYOWcJ
DAjs4DqwO3cOvfPlOVRBDE6uQdaZdN5R2+97/1i9qLcT9t4x1fJyyXJqC4N0lZxG
AGQUmfOx2SLZzaiSqhwmej/+71gFewiVgdtxD4774zEJuwm+UE1fj5F2PVqdnoPy
6cRms+EGZkNIGIBloDcYmpuEMpexsr3E+BUAnSeI++JjF5ZsmydnS8TbKF5pwnnw
SVzgJFDhxLyhBax7QG0AtMJBP6dYuC/FXJuluwme8f7rsIU5/agK70XEeOtlKsLP
Xzze41xNG/cLJyuqC0J3U095ah2H2QIDAQABo4H4MIH1MA4GA1UdDwEB/wQEAwIB
hjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwEgYDVR0TAQH/BAgwBgEB
/wIBADAdBgNVHQ4EFgQUxc9GpOr0w8B6bJXELbBeki8m47kwHwYDVR0jBBgwFoAU
ebRZ5nu25eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAC
hhZodHRwOi8veDEuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcG
A1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcN
AQELBQADggIBAE7iiV0KAxyQOND1H/lxXPjDj7I3iHpvsCUf7b632IYGjukJhM1y
v4Hz/MrPU0jtvfZpQtSlET41yBOykh0FX+ou1Nj4ScOt9ZmWnO8m2OG0JAtIIE38
01S0qcYhyOE2G/93ZCkXufBL713qzXnQv5C/viOykNpKqUgxdKlEC+Hi9i2DcaR1
e9KUwQUZRhy5j/PEdEglKg3l9dtD4tuTm7kZtB8v32oOjzHTYw+7KdzdZiw/sBtn
UfhBPORNuay4pJxmY/WrhSMdzFO2q3Gu3MUBcdo27goYKjL9CTF8j/Zz55yctUoV
aneCWs/ajUX+HypkBTA+c8LGDLnWO2NKq0YD/pnARkAnYGPfUDoHR9gVSp/qRx+Z
WghiDLZsMwhN1zjtSC0uBWiugF3vTNzYIEFfaPG7Ws3jDrAMMYebQ95JQ+HIBD/R
PBuHRTBpqKlyDnkSHDHYPiNX3adPoPAcgdF3H2/W0rmoswMWgTlLn1Wu0mrks7/q
pdWfS6PJ1jty80r2VKsM/Dj3YIDfbjXKdaFU5C+8bhfJGqU3taKauuz0wHVGT3eo
6FlWkWYtbt4pgdamlwVeZEW+LM7qZEJEsMNPrfC03APKmZsJgpWCDWOKZvkZcvjV
uYkQ4omYCTX5ohy+knMjdOmdH9c7SpqEWBDC86fiNex+O0XOMEZSa8DA
-----END CERTIFICATE-----
[root@localhost allinssl_db_backup]#
更多问题欢迎和博主探讨,关注allinssl官方获取更多资料,感谢开源!
参考:
AllinSSL 官方:https://allinssl.com
CSDN 博客:https://blog.csdn.net/qq_27471405/article/details/147930666
作者
fffff@xf.nn
