You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Helm配置为Kong Gateway设置/更换SSL证书

Kong Gateway 通过Helm配置/更换SSL证书方案

完全可以通过Helm实现SSL证书的设置与更换,挂载Secret传入证书是生产环境推荐的标准方案,比手动curl调用Admin API配置更易维护、可复现。

Kong Gateway SSL配置界面截图

方案1:挂载K8s TLS Secret配置默认证书

这是最常用的配置方式,适用于配置网关全局默认SSL证书的场景:

  • 先将SSL证书、私钥创建为Kubernetes TLS类型Secret:
# 替换成你自己的证书文件路径、Kong所在命名空间
kubectl create secret tls kong-default-ssl --cert=./fullchain.crt --key=./private.key -n kong
  • 执行Helm升级命令,将证书挂载到Kong Proxy组件:
helm upgrade --install kong kong/kong -n kong \
  --set proxy.tls.enabled=true \
  --set proxy.tls.secretName=kong-default-ssl

如果你使用自定义values.yaml管理配置,直接在values中添加以下配置再执行upgrade即可:

proxy:
  tls:
    enabled: true
    secretName: kong-default-ssl

配置生效后,所有未匹配到专属SNI证书的HTTPS请求,都会返回这个默认证书。

方案2:多域名SNI证书配置

如果需要为不同域名绑定独立SSL证书,不需要手动调用curl接口配置,可以直接在Helm values中声明证书与对应SNI列表,Kong启动后会自动加载:

gateway:
  certificates:
    - name: example-com-cert
      # 传入证书文件的base64编码内容
      cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t..."
      # 传入私钥文件的base64编码内容
      key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ..."
      snis:
        - "example.com"
        - "www.example.com"
    - name: test-com-cert
      cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t..."
      key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQ..."
      snis:
        - "test.com"

证书更换操作

  • 若仅更新证书内容、不更换Secret名称:直接编辑对应的K8s Secret替换cert和key字段即可,K8s会自动将更新后的文件同步到Kong Pod,Kong会自动检测证书变更并重载配置,整个过程不需要重启Pod,不会中断正常业务流量
  • 若更换为新的证书Secret:执行helm upgrade命令传入新的proxy.tls.secretName参数即可完成替换

注意事项

  • 如果你之前通过curl调用Admin API手动配置过证书,Helm配置的证书会与手动配置的证书共存,匹配优先级遵循Kong原生SNI匹配规则。如果需要完全通过Helm托管证书配置,建议先删除之前手动通过API创建的证书资源,避免冲突
  • 传入的证书建议使用包含中间CA的完整证书链(fullchain),避免部分客户端校验证书时抛出不信任错误
  • 默认Helm配置的挂载文件权限符合Kong进程运行要求,无需手动调整权限
  • 如果HTTPS请求在Kong上游的负载均衡层已经做了TLS卸载,Kong侧不需要重复配置SSL证书

内容的提问来源于stack exchange,提问作者MeIr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:54:22