主机名(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?你的云提供商是什么?