【发布时间】:2020-07-14 21:27:40
【问题描述】:
入口控制器部署.yml
spec:
containers:
- args:
- /nginx-ingress-controller
- --default-backend-service=stratus/nginx-ingress-default-backend
- --election-id=ingress-controller-leader
- --ingress-class=nginx
- --configmap=ingress-controller-leader-nginx
- --enable-ssl-passthrough
入口资源.yml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: 'REPOSITORY_NAME'
namespace: service
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-passthrough: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
tls:
- hosts:
- "xyz-development.com"
- secretName: ingress-secret-tls
rules:
- host: "xyz-development.com"
http:
paths:
- path: /service/
backend:
serviceName: 'REPOSITORY_NAME'
servicePort: 8080
秘密包含一个签名证书,CN 为 xyz-development.com
端点:xyz-development.com/service/swagger-ui.html
如果我尝试使用上述配置访问端点,我最终会出现“您的连接不是私有的”错误。
但是如果我将入口控制器 deployment.yml 修改为
spec:
containers:
- args:
- /nginx-ingress-controller
- --default-backend-service=stratus/nginx-ingress-default-backend
- --election-id=ingress-controller-leader
- --ingress-class=nginx
- --configmap=stratus/ingress-controller-leader-nginx
- --enable-ssl-passthrough
- --default-ssl-certificate=service/ingress-secret-tls
那么网站是安全的,我的有效证书。
- 这是预期的行为吗?
- 即使在控制器中去掉了默认的ssl证书标志,不应该使用入口resource.yml中提到的秘密吗?
- 任何其他指针或更好的做法将不胜感激
【问题讨论】:
-
是自签名证书吗?你是什么CA?
-
@KoopaKiller 是我们中心化团队的 CA。
-
好的,所以nginx容器有CA密钥来验证证书?
标签: ssl kubernetes kubernetes-ingress nginx-ingress