1. Caddy version (caddy version
):
v2.4.6 h1:HGkGICFGvyrodcqOOclHKfvJC0qTU7vny/7FhYp9hNw=
2. How I run Caddy:
a. System environment:
Windows 8, running it from powerShell, installed with choco
b. Command:
caddy run
c. Service/unit/compose file:
I think it's not relevant here?
d. My complete Caddyfile or JSON config:
:8443 {
tls internal {
on_demand
}
reverse_proxy {
to localhost:8444
lb_policy round_robin
transport http {
tls tls_insecure_skip_verify
}
}
}
3. The problem I’m having:
What I want to achieve, is to proxy all request coming to 8443 to 8444. I have a backend server listening there. It’s using HTTPS, but it’s based on HTTP1. We’re planing to switch to HTTP2, but it will probably be done gradually, as not all services can be changed so easily.
Right now, sending request in any other way than curl (our tests which also use HTTP1, Postman) fails miserably with:
Error: write EPROTO 9624:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:
I know it’s Node’s error, not caddy’s but I’m really at a loss here.
From what I can understand, the communication between proxy I’ve created and backend works just fine, the only issue is that Caddy only accepts HTTP2 requests, thus blocking me from running tests, and seeing if it actually works as expected.
What would I need to change do make it accept both HTTP1 (probably http1.1) and HTTP2 requests?
On a further note, right now it can communicate with backend, but will this config work once we make the backend server use http2?