Hi, I have created a TLS ingress for an angular ap...
# rke2
n
Hi, I have created a TLS ingress for an angular app on RKE2. While trying to access JSON file from the UI, the calls are failing with "*ERR_HTTP2_PROTOCOL_ERROR*" error. But the same works fine with a non TLS ingress. The difference I see is that the TLS ingress uses HTTP/2 protocol while non TLS ingress uses HTTP/1.1 protocol. Non TLS Ingress:
Copy code
[kubenode@master ~]$ curl -kv <http://ne-mgr-ui.xx.xx.xx.xx.nip.io>
* Rebuilt URL to: <http://ne-mgr-ui.xx.xx.xx.xx.nip.io/>
*   Trying xx.xx.xx.xx...
* TCP_NODELAY set
* Connected to <http://ne-mgr-ui.xx.xx.xx.xx.nip.io|ne-mgr-ui.xx.xx.xx.xx.nip.io> (xx.xx.xx.xx) port 80 (#0)
> GET / HTTP/1.1
> Host: <http://ne-mgr-ui.xx.xx.xx.xx.nip.io|ne-mgr-ui.xx.xx.xx.xx.nip.io>
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 04 Apr 2023 10:01:59 GMT
TLS Ingress:
Copy code
[kubenode@master ~]$ curl -kv <https://ne-mgr-ui.app.com>
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
* http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [            proxy-revalidate, max-age=0], value: []
* HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
* stopped the pause stream!
* Connection #0 to host <http://ne-mgr-ui.app.com|ne-mgr-ui.app.com> left intact
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
Am not sure how to make the TLS ingress use HTTP/1.1 protocol instead of HTTP2 protocol error. I have tried adding the annotation nginx.ingress.kubernetes.io/use-http2: "false" on the TLS ingress but the ingress still uses HTTP/2 protocol only. I want to disable HTTP/2 protocol on RKE2. Any suggestions would be appreciated.
206 Views