我正在尝试用nginx-ingress-controller实现SSL Passtrough.这是我的入口对象:
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: /控制器args中存在--enable-ssl-passtrough标志。
当请求通过入口控制器到达我的底层服务时,我试图解析SNI,以找出使用哪个域来查找我应该提供的证书,但服务找不到SNI,并返回以下错误:
{"level":"debug","ts":1592992137.1836417,"msg":"Error getting server name","error":"No hostname"}nginx-ingress-controller在解析时会删除SNI吗?或者,这种行为的原因可能是什么?
提前感谢您的帮助
发布于 2020-06-25 17:49:05
我直接联系了nginx-ingress开发人员,我得到的信息是这不起作用的原因是通配符域,这是nginx-ingress不支持的。
其他一切都配置正确,并且当将*.example.com更改为特定的内容(例如whatever.example.com)时,它可以正常工作。
https://stackoverflow.com/questions/62552997
复制相似问题