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

AKS启用AGIC配置Application Gateway SSL的相关问题

AKS + AGIC 启用SSL配置答疑

基础配置可行性

你给出的配置思路是对的:提前把SSL证书上传到Application Gateway的SSL证书管理列表,再通过Ingress注解引用证书名、开启SSL跳转即可生效,这套逻辑对当前启用的AGIC加载项、后续迁移到Helm部署的AGIC版本都适用。
注意你示例里用的extensions/v1beta1版本的Ingress资源已经在新版Kubernetes中废弃,正式部署建议替换为networking.k8s.io/v1版本的Ingress配置,避免兼容问题。
基础可用配置参考如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: aspnetapp
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: <你提前上传到Application Gateway的证书名称>
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: aspnetapp
            port:
              number: 80

端口配置说明

  • servicePort字段配置的是Application Gateway转发请求到后端集群服务时访问的端口,和对外是否启用TLS没有关联。如果你的集群内应用本身就是80端口跑明文HTTP服务,这里直接填80即可,不需要改成443。
  • 只要配置了appgw.ingress.kubernetes.io/appgw-ssl-certificate注解,AGIC就会自动在Application Gateway上创建443端口的HTTPS监听器,绑定你指定的证书对外提供TLS服务,和后端服务端口配置无关。
  • ssl-redirect: "true"注解的作用仅仅是自动给80端口的HTTP监听器配置301强制跳转规则,把所有明文HTTP请求导到443 HTTPS端口,不会修改后端转发的端口逻辑,不存在“开了跳转端口配置就无效”的情况。

加密链路覆盖范围

  • 外部访问端 -> Application Gateway 链路:只要配置了上述SSL证书注解,这段链路默认会被TLS加密,也就是最常用的TLS终结在Application Gateway的模式。
  • Application Gateway -> 集群内后端服务链路:你当前配置里servicePort填80的话,这段链路是明文HTTP传输,不加密。如果需要对这段链路也加密,你需要先给集群内的服务配置证书,让服务本身在443端口提供HTTPS服务,再把servicePort改成443,同时添加appgw.ingress.kubernetes.io/appgw-trusted-root-certificate注解指定信任的后端根证书,让Application Gateway校验后端服务证书合法性,才能实现全链路端到端加密。

证书配置要求

对外服务侧默认单张证书即可满足需求:只要这张证书的域名覆盖范围匹配你Ingress配置的所有对外访问域名即可(比如通配符证书*.example.com可以匹配所有example.com下的二级域名)。如果你有多个跨主域的服务需要对外提供HTTPS,才需要上传多张对应域名的证书,在不同的Ingress资源中分别引用对应证书名称即可,不需要额外做其他全局配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 06:06:31