nginx 如何将入口后端配置为专门与TLSv1.3配合使用

gwo2fgha  于 2022-11-02  发布在  Nginx
关注(0)|答案(1)|浏览(195)

我有一个入口(nginx),它代理一个应用程序暴露8443(SSL)与一个自签名证书。它在http中工作正常,但在https中我得到以下错误:

2022/10/31 18:04:28 [error] 39#39: *1855 SSL_do_handshake() failed (SSL: error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:SSL alert number 70) while SSL handshaking to upstream, client: 127.0.0.1, server: _, request: "GET /web-service/ HTTP/2.0", upstream: "https://10.2.1.37:8443/web-service/", host: "localhost:8443"

经过一番研究,我确定我的Web服务仅支持:

"TLSv1.3" and "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256:TLS_AE"

我蜷缩在那里,如果我使用任何其他东西,而不是显式的TLSv1.3,我会得到一个类似的错误。我还强制Web服务降级到TLSv1.2,它工作,但显然这不是很好。
有没有办法配置入口nginx后端配置,以只使用TLSv1.3和这些协议在入口本身。
类似于ssl_protocols TLSv1.3;的东西,但作为后端级别的注解?我尝试了一个片段,但它似乎没有应用在正确的级别。
下面是我目前的代码:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: hello-world-ingress2
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "off"
    nginx.ingress.kubernetes.io/rewrite-target: /web-service/$1
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /web-service/(.*)
        pathType: Prefix
        backend:
          service:
            name: my-web-service
            port:
              number: 8443
mklgxw1f

mklgxw1f1#

似乎需要添加configMap来更改默认行为。
请参阅以下链接末尾的:
https://kubernetes.github.io/ingress-nginx/user-guide/tls/#default-tls-version-and-ciphers

相关问题