首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是不是在主机级别配置的ssl-pass身( kubernets )?

是不是在主机级别配置的ssl-pass身( kubernets )?
EN

Stack Overflow用户
提问于 2022-01-20 11:59:26
回答 1查看 554关注 0票数 1

我在kubernetes有两个服务,一个是mtls,另一个是tls。我正试着为他们配置一个入口。我想为mtls服务配置ssl通行证,但将tls服务保留在没有ssl-pass身的情况下,它不需要客户端证书。

我用两个不同的yaml文件在同一个主机名下配置了两个入口。一个有通,另一个没有通。

当前的行为是,如果我首先创建mtls入口,那么tls将无法工作,我发送给tls的https请求将始终路由到mtls服务。然后返回404。但是,如果我首先配置tls入口,那么mtls入口。然后tls 1将工作,但mtls的证书颁发将失败。

我不确定SSLpass身批注是否在主机级别配置?或者我能让它在每个路径级别上工作吗?小扁桃体进入。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: mtls-ingress
spec:
  rules:
  - host: app.abc.com
    http:
      paths:
      - backend:
          service:
            name: mtls-service
            port:
              number: 8081
        path: /mtls-api
        pathType: Prefix
  tls:
  - hosts:
    - app.abc.com
    secretName: tls-nginx-mtls

然后tls进入:

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
  name: tls-ingress
spec:
  rules:
  - host: app.abc.com
    http:
      paths:
      - backend:
          service:
            name: tls-service
            port:
              number: 8080
        path: /tls-api
        pathType: Prefix
  tls:
  - hosts:
    - app.abc.com
    secretName: tls-nginx-tls

这就像两个入口相互覆盖一样,只有第一个注释起作用。它看起来是为主机配置的,而不是入口或路径。不知道。请帮帮忙。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-22 11:35:05

您希望在同一个主机上对其中一个服务使用注释nginx.ingress.kubernetes.io/ssl-passthrough: "true"的两个服务。

这将不起作用,因为通过SSL,代理不知道将流量路由到哪里的路径。

来自NGINX入侵控制器用户指南

注释nginx.inress.kubernetes.io/ssl-pass身指示控制器将TLS连接直接发送到后端,而不是让NGINX解密通信。 因为SSL传递在OSI模型(TCP)的第4层上工作,而不是在第7层(HTTP)上工作,所以使用SSL可以使设置在Ingress对象上的所有其他注释无效。

解决方案是为服务使用子域,而不是使用路径。

此外,GitHub还提供了有关此问题的一些链接:

当启用SSL通过时忽略多个侵入后端

服务器中的"example.com“

基于路径的路由仅适用于基本路径

以及来自服务器故障的关于NginX工作流程的SSLTrans身。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70785851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档