我们的网站域使用 GoDaddy 作为 CA 和 AKS 来托管证书。我们忘记续订,证书已于上周五过期,但我们已成功生成新证书并将其存储在 aks 密钥中。所有相关 Ingress 服务 YAML 文件均已正确配置。然而,当我们在域名上运行 ssllab.com 测试时,仍然显示“Kubernetes Ingress Controller Fake Certificate”。
我们已经重启了入口控制器和相关的入口服务,但问题依然存在。入口控制器日志也没有显示任何有用的信息。我们在这里缺少什么?任何帮助表示赞赏!谢谢!
正如评论中所建议的,ssllab.com 上显示的“Kubernetes Ingress Controller Fake Certificate”意味着旧证书仍在由入口控制器使用。重新启动入口控制器和相关入口服务应该足以获取新证书,但由于这不起作用,您可以尝试删除入口控制器 Pod。这将迫使 Kubernetes 使用更新的配置(包括新证书)创建一个新的 pod。
假设您正在运行一个应用程序并且手头有 GoDaddy SSL 证书
秘密存储证书-
kubectl create secret tls my-tls-secret --cert=path/to/your/certificate.crt --key=path/to/your/private.key
并且您已经暴露了入口控制器
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- your-domain.com
secretName: my-tls-secret
rules:
- host: your-domain.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
清除 SSL Labs 缓存并运行 SSL Labs 测试来验证您的证书。
强制重新启动 Ingress Controller。
kubectl delete pod -l app.kubernetes.io/name=ingress-nginx -n ingress-nginx
参考资料: