My web servers need to integrate with a 3rd party's server that sits behind a firewall. In order to get through the firewall all requests have to come from the same IP address and be authenticated via SSL. So I set up a machine that's supposed to work as a proxy and forward all traffic via SSL to the 3rd party server.
I set up the proxy with the certificates and matching key files and can make a successful request to the 3rd party service via CURL just fine, using the certificate and key file. I sey up a virtual host on Apache to pass these requests through, but keep getting errors saying that the SSL handshake with the remote server failed. I see the following error messages in my apache logs:
Proxy client certificate callback: (:443) downstream server wanted client certificate but none are configured [Sun Jul 29 01:40:48 2012] [error] (502)Unknown error 502: proxy: pass request body failed to <3rd party IP>:18443 (<3rd party URL>)
[Sun Jul 29 01:40:48 2012] [error] [client ] proxy: Error during SSL Handshake with remote server returned by /
My apache virtual host configuration looks as follows:
<VirtualHost *:18443>
ServerName <Proxy IP>
SSLEngine on
SSLProxyEngine On
SSLCertificateFile /etc/apache2/ssl/my_server.pem
SSLCertificateKeyFile /etc/apache2/ssl/my_server.key
SSLProxyCACertificatePath /etc/ssl/certs
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / https://<3rd party server address>:18443
ProxyPassReverse / https://<3rd party server address>:18443
</VirtualHost>
Thank you! Any help is highly appreciated!