按Lets Encrypt教程配置EKS的Application Gateway后无法暴露HTTPS
遗漏配置排查&修复步骤
- 不要手动在Azure门户/PowerShell中操作Application Gateway的监听器配置,AGIC(应用网关入口控制器)管理的资源必须完全通过Kubernetes资源声明配置,手动修改的配置不受AGIC管控,自然要求你手动上传SSL证书。
- 检查Ingress资源是否添加了正确的TLS配置段,示例配置参考:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: your-ingress annotations: kubernetes.io/ingress.class: azure/application-gateway appgw.ingress.kubernetes.io/ssl-redirect: "true" # 可选,开启HTTP自动跳HTTPS spec: tls: - hosts: - your-domain.com # 要和证书颁发的域名完全匹配 secretName: your-tls-secret # cert-manager颁发证书后生成的Secret名称 rules: - host: your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: your-service port: number: 80
- 确认cert-manager已成功颁发证书:执行
kubectl get secret <your-tls-secret-name>,返回结果的TYPE列需要为kubernetes.io/tls,且包含tls.crt、tls.key两个数据字段。如果证书未颁发成功,检查Issuer/ClusterIssuer的配置是否正确,DNS01/HTTP01挑战是否完成。 - 确认AGIC的服务账号有对应Namespace的Secret读取权限,且AGIC绑定的Azure身份有Application Gateway的配置修改权限,权限不足会导致AGIC无法同步证书到应用网关。
- 配置完成后等待2-5分钟,AGIC会自动读取TLS Secret的证书内容,同步创建HTTPS监听器并绑定证书,无需手动操作。
内容的提问来源于stack exchange,提问作者Stephen Brown
相关产品推荐
相关产品推荐

