-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Any concept/idea to share with NGINX/SSL port 443? #97
Comments
For authentication to pass thru a proxy such as NGINX, some modifications to the protocol has to be made. Currently the authentication is tied to the QUIC connection authentication, which breaks the proxy model. François has started working on this here, #89, and more details are available there. Also, this might be a duplicate of #67. |
You currently can already use nginx to do multiplexing based on the server name (not the URI path parameter yet), all you need is nginx version 1.25.3 (with http3 support) and you just need to configure it to proxy QUIC connections towards your ssh3 server based on the server name you chose. For instance, let's say you have the hostname example.org. You have nginx listening on the UDP open port 443 on your machine and you have your SSH3 server listening on port 4444. You can attribute the ssh3.example.org server name to your ssh3 server (you need the certificate for it). If you have all that configured, you can do something like below in your nginx config and it should work:
And you can add other HTTP/3 services by adding other upstreams and adding them in the This is not explicitly discussed in the nginx doc, but the following ref may still help you: https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html The advantage of that solution is that the proxy does not decrypt your traffic and therefore does not have to be trusted. The disadvantage is that is is less flexible. |
For reverse proxies support (i.e. ones that decrypt the HTTP requests and handle stuff basd on the actual requests), we need more time for quic implementations and HTTP/3 standardisation to move forward:
So it is coming and it will be really nice as we'll be able to run several SSH3 connections with isolated authentication contects over the same HTTP/3 connection, but we need to wait a bit for reverse proxies. |
Thanks abunch! I'll give it a shot! |
any update on this guys ? did this worked properly ? |
Hi ! So if I'm not missing anything, Caddy will probably be the first Open Source server implementation that has QUIC SNI multiplexing. This means you can co-locate ssh3 and your other web servers. I'm already doing it right now. :-) Right now, the Caddy plugin requires a fork of |
It actually does via the https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html |
did you test it yourself ? is it actually working or is it based on documents ? |
I use it to proxy HTTPS connections based on SNI. Didn't test it with ssh3, but as it's also using SNI it should work exactly the same. EDIT: Ah, my bad. It may not work as ssh3 uses QUIC instead, which I didn't test with nginx. |
Hi @francoismichel ! |
Is there any way, or prior engineering put into sharing a port such as SSL/nginx to allow the 'secret path' to connect?
The text was updated successfully, but these errors were encountered: