主机名(SNI)在使用nginx入口SSL通过底层服务时丢失
我正试图通过主机名(SNI)在使用nginx入口SSL通过底层服务时丢失,nginx,kubernetes,nginx-ingress,Nginx,Kubernetes,Nginx Ingress,我正试图通过nginx入口控制器实现SSL密码。这是我的入口对象: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/backend-protocol: HTTPS nginx.ingress.kubernetes.io/ssl-passthrough: &q
nginx入口控制器
实现SSL密码。这是我的入口对象:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
labels:
my-label: example
name: example
namespace: example
spec:
rules:
- host: '*.example.com'
http:
paths:
- backend:
serviceName: example
servicePort: 8443
path: /
控制器参数中存在--enable ssl passTour
标志
当请求通过入口控制器发送到我的基础服务时,我试图解析SNI,以确定使用哪个域来查找我应该提供的证书,但服务找不到SNI并返回此错误:
{"level":"debug","ts":1592992137.1836417,"msg":"Error getting server name","error":"No hostname"}
nginx入口控制器
解析时是否删除SNI?或者这种行为的原因是什么
提前感谢您的帮助我直接联系了nginx-ingres开发人员,我得到的信息是,这不起作用的原因是通配符域,
nginx-ingres
不支持通配符域
其他所有内容都已正确配置,当将
*.example.com
更改为特定内容(例如which.example.com
)时,它工作正常。您如何尝试从入口获取SNI?你的云提供商是什么?