https://bz.apache.org/bugzilla/show_bug.cgi?id=65614

            Bug ID: 65614
           Summary: cannot SSLProxy ProxyPass over Unix domain socket
           Product: Apache httpd-2
           Version: 2.4.48
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

tested on official Debian 11 container, running on a Debian 10 desktop. the
versions mentioned below for apache2 are the versions i'm getting from using
apt. i don't believe the issue is fixed in 2.4.49 based on a glance at the
changelog. 

I have an experiment where I was testing two separate things using apache2 as a
reverse proxy
1. reverse proxying over unix domain socket to a simple websocket application,
this works 2.4.48 in deb11's repos no problem, deb10's repos have 2.4.38 which
is missing a bugfix in 2.4.39 for websocket over UDS. 
2. upstream TLS between the reverse proxy and the server listening on some
network port (really mTLS since i have both sides checking certs), this works
fine in 2.4.38 and 2.4.48. 

however, in 2.4.48, i cannot do both together, i.e. I cannot seem to do ssl
proxying over unix socket. I can hit the server's unix socket with curl doing
HTTPS just fine however, so it seems to be an apache issue. 

in my virtualhost block, i have the following stuff. note that the commented
out bits work, if i proxy to a localhost port. 

SSLCACertificateFile /certs/ca/dummy_root_ca.crt
SSLProxyCACertificateFile /certs/ca/dummy_root_ca.crt
SSLProxyMachineCertificatePath /certs/proxyclient/
SSLProxyEngine on
SSLProxyVerify require 
SSLProxyVerifyDepth 1
#ProxyPass /ws wss://localhost:5000/test/ws
#ProxyPassReverse /ws wss://localhost:5000/test/ws
#ProxyPass / https://localhost:5000/
#ProxyPassReverse / https://localhost:5000/
ProxyPass /ws unix:/run/server.sock|wss://localhost/test/ws
ProxyPassReverse /ws unix:/run/server.sock|wss://localhost/test/ws
ProxyPass / unix:/run/server.sock|https://localhost/
ProxyPassReverse / unix:/run/server.sock|https://localhost/

with this configuration, my server seems to not see the request and i get the
following errors in the logs

[Mon Oct 04 16:53:15.128651 2021] [proxy:error] [pid 36:tid 139650561906432]
(20014)Internal error (specific information not available): [client
172.17.0.1:54422] AH01084: pass request body failed to 0.0.0.0:0 (httpd-UDS)
[Mon Oct 04 16:53:15.128678 2021] [proxy:error] [pid 36:tid 139650561906432]
[client 172.17.0.1:54422] AH00898: Error during SSL Handshake with remote
server returned by /jsclient
[Mon Oct 04 16:53:15.128682 2021] [proxy_http:error] [pid 36:tid
139650561906432] [client 172.17.0.1:54422] AH01097: pass request body failed to
0.0.0.0:0 (httpd-UDS) from 172.17.0.1 ()

if i change wss -> ws and https -> http in the proxy pass lines, I get expected
"why is this http not https" from the server error messages.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to