目 录CONTENT

文章目录

全自动搞定!用allinssl实现APISIX证书一键部署与续期

Administrator
2025-10-27 / 0 评论 / 0 点赞 / 58 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

全自动搞定!用allinssl实现APISIX证书一键部署与续期

背景介绍

在微服务架构盛行的今天,SSL/TLS证书管理已成为运维工作的核心挑战之一。传统的人工管理方式不仅耗时费力,还容易因疏忽导致证书过期引发业务中断。尤其在管理数十甚至数百个域名时,手动维护几乎不可能完成。

allinssl是一款开源的SSL证书全生命周期管理工具,专为解决这一痛点而生。它能实现证书的自动申请、续期、部署和监控,本文将详细介绍如何结合allinssl与APISIX网关,打造一套完整的自动化证书管理体系。

环境准备

开始部署前,请确保具备以下环境:

  • 操作系统:CentOS 7.9
  • Docker:1.24版本
  • APISIX:已安装并运行
  • APISIX Dashboard:已安装并运行

注:本文假定您已完成APISIX及APISIX Dashboard的安装配置,且APISIX Admin API可通过127.0.0.1:9180访问。

allinssl简介

allinssl是一个集证书申请、管理、部署和监控于一体的SSL证书全生命周期管理平台。它支持Let's Encrypt、ZeroSSL等主流免费CA,具备自动监控证书有效期并提前续期的能力,同时支持多种部署目标,包括自建服务器、CDN、对象存储等。

核心特性:

  • 全自动证书申请和续期
  • 多平台部署支持
  • 证书过期监控告警
  • 可视化管理界面
  • 安全可控的管理入口

快速部署allinssl

通过Docker可快速部署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 \
  -e TZ=Asia/Shanghai \
  allinssl/allinssl:latest

执行后,访问http://your-server-ip:7979即可进入allinssl管理界面。

配置腾讯云API密钥

本文以腾讯云为例演示DNS验证配置:

  1. 登录腾讯云控制台,进入访问密钥管理页面
  2. 点击"新建密钥"创建API密钥
  3. 保存SecretId和SecretKey(注意SecretKey仅显示一次)
  4. 建议创建专用子用户,仅授予DNSPod相关权限以保障安全
    tencent_sk.png

在allinssl中配置腾讯云API密钥:

  1. 登录allinssl管理界面
  2. 进入"授权API管理"页面
  3. 点击"添加授权API"
  4. 选择"腾讯云"作为DNS服务商
  5. 填写获取的SecretId和SecretKey
  6. 保存配置并测试连接
    ssl_tencent_sk.png

配置APISIX服务器授权

在allinssl中配置APISIX服务器连接信息:

  1. 进入"授权API管理"页面
  2. 点击"添加授权API"
  3. 选择"SSH"方式
  4. 填写APISIX服务器连接信息
    ssl_ssh.png

获取APISIX管理密钥(X-API-KEY)

使用APISIX Admin API需提供正确管理密钥,默认密钥为:

edd1c9f034335f136f87ad84b625c8f1

⚠️ 生产环境中强烈建议修改默认密钥以确保安全性。

查找当前API密钥

确认当前APISIX实例API密钥的方法:

  1. 检查APISIX配置文件:

    cat /usr/local/apisix/conf/config.yaml | grep -A 3 admin_key
    
  2. 在配置文件中找到类似内容:

    apisix:
      admin_key:
        - name: "admin"
          key: edd1c9f034335f136f87ad84b625c8f1
          role: admin
    
  3. 其中key字段即为X-API-KEY值。
    apikey.png

修改默认API密钥(推荐)

提升生产环境安全性:

  1. 编辑APISIX配置文件:

    vim /usr/local/apisix/conf/config.yaml
    
  2. 找到admin_key部分并修改key值为复杂密钥

  3. 重启APISIX服务:

    apisix stop && apisix start
    

配置企业微信通知(可选)

为实时掌握证书状态,建议配置企业微信通知:

获取企业微信webhook

在有权限的群聊中按图设置webhook并获取URL:
wecom1
wecom2

在allinssl中配置webhook

  1. 登录allinssl管理界面
  2. 进入"通知渠道管理"页面
  3. 点击"添加通知渠道"
  4. 选择"企业微信应用"类型
  5. 填写相关信息:
    webhook_setting
  6. 保存配置并测试连接

配置完成后,可在证书工作流中选择该通知渠道,证书申请、续期或部署完成时将收到企业微信通知。

配置证书自动部署

创建证书自动部署任务

workflow1.png
workflow2.png

工作流配置要点:

  • 执行模式:默认自动执行,可设定定时任务
  • 申请证书:选择合适的证书提供商和验证方式
    apply_ssl
  • 部署证书:配置部署目标和后置命令
    deploy_ssl

部署命令如下:

cd /home/zjl/ssl/www/ && \
yum -y install jq && \
curl -X PUT "http://127.0.0.1:9180/apisix/admin/ssls/www-1" \
  -H "X-API-KEY: edd1c9f034335f136f87ad84b625c8f1" \
  -H "Content-Type: application/json" \
  -d "$(
    jq -n \
      --arg cert "$(cat cert)" \
      --arg key "$(cat key)" \
      --argjson snis '["www.howlaisi.com"]' \
      '{
        id: "www-1",
        cert: $cert,
        key: $key,
        snis: $snis
      }'
  )"

命令解析:

  1. 进入证书文件所在目录
  2. 安装jq工具处理JSON数据
  3. 通过APISIX Admin API上传证书至APISIX
  4. 指定证书适用域名(SNI)

通知设置

notify_setting
wecom_success.png

APISIX SSL配置详解

APISIX通过Admin API管理SSL证书,API端点格式:

http://127.0.0.1:9180/apisix/admin/ssls/{id}

参数说明:

  • 127.0.0.1:9180:APISIX Admin API地址
  • ssls:SSL证书资源路径
  • {id}:证书唯一标识符

请求头要求:

  • X-API-KEY:APISIX管理密钥
  • Content-Type:指定为JSON格式

请求体字段:

  • id:证书ID
  • cert:证书内容
  • key:私钥内容
  • snis:证书适用域名列表

验证证书部署

部署完成后验证方法:

  1. 检查APISIX Admin API返回结果
  2. 浏览器访问域名验证证书有效性
  3. 使用curl测试HTTPS连接:
curl -v https://www.howlaisi.com

自动化续期流程

allinssl自动监控证书有效期,在到期前自动续期并通过配置的后置命令部署至APISIX,实现证书无缝更新。

注意事项

  1. 妥善保管APISIX Admin API密钥
  2. 根据实际情况调整证书文件路径
  3. 准确配置域名列表
  4. 确保allinssl服务器可SSH连接APISIX服务器
  5. 定期检查证书部署状态
  6. 腾讯云API密钥建议使用子账号和最小权限原则

总结

通过allinssl与APISIX的深度整合,我们构建了一套完整的SSL证书自动化管理体系。这套方案不仅显著提升了运维效率,更从根本上杜绝了因证书过期导致的业务中断风险。

方案优势:

  • 集中化管理:统一平台管控所有证书
  • 全自动运维:申请、续期、部署全流程自动化
  • 安全可靠:减少人工干预,降低安全风险
  • 可视化监控:实时掌握证书状态

借助这套自动化解决方案,运维团队可将精力聚焦于核心业务,无需再为证书管理工作烦扰。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区