You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by "Guenther, Christian" <Ch...@realtech.com> on 2005/08/30 15:13:05 UTC
[users@httpd] reverse proxy client certificat pass through
Hi List,
I have an application server in an internal DMZ for which I use an Apache2 as a reverse proxy. The overall communication works flawlessly. Clients connect to the Apache and it passes the communication requests through to my internal application server - by the way it is an SAP XI.
Now I added SSL to my setup and this too works perfectly. A client uses SSL to contact the application server. The Apache as reverse proxy terminates the SSL connection and then connects to the internal application server via SSL.
But now I want the external client to authenticate itself to the application server via client certificate and this won't work at all. I mean as I see it in normal SSL communication the client certificate is taken by the apache wich will not use it because he is not configured to check for client certificates. The application server again is supposed to authenticate the client via its certificate which fails because the Apache does not pass the certificate through to him.
Is there any way of configuring the apache to terminate the SSL connection but pass the client certificate from the outside client to the internal application server???
Thanks in advance,
Christian
Ps.: I have added my httpd.conf part that deals with the XI backend
<VirtualHost 172.30.210.210>
ServerName web004.externerhost.de
ServerAdmin webmaster@externerhost.de
# This virtual host does not serve any documents itself but only proxy
ProxyRequests Off
ProxyPreserveHost On
RequestHeader set ClientProtocol HTTPS
# Set additional header for letting IE 6 SP2 accept 3rd party cookies
# in an iframe. See: http://msdn.microsoft.com/library/default.asp?url=
# /workshop/security/privacy/privacy_ovw_entry.asp for details
Header add P3P CP="NOI"
SSLEngine On
SSLCertificateFile /etc/apache2/ssl.crt/web004_cert.pem
SSLCertificateKeyFile /etc/apache2/ssl.key/web004_key.pem
SSLProxyEngine On
# Forward all requests for this host to SAP XI
ProxyPass / https://ux210210.internerhost.lan:8007/
# Rewrite HTTP 302 object moved redirects from SAP XI
ProxyPassReverse / https://ux210210.internerhost.lan:8007/
</VirtualHost>
Christian Günther
SAP Technical Consultant
REALTECH
REALTECH system consulting GmbH
Industriestraße 39c
69190 Walldorf
Germany
Tel.: +49.6227.837.267
Mobile: +49.173.2571.326
Fax:+49.6227.837.837
mailto:christian.guenther@realtech.com
Re: [users@httpd] reverse proxy client certificat pass through
Posted by allan juul <al...@muly.dk>.
Guenther, Christian wrote:
> Hi List,
>
> I have an application server in an internal DMZ for which I use an Apache2 as a reverse proxy. The overall communication works flawlessly. Clients connect to the Apache and it passes the communication requests through to my internal application server - by the way it is an SAP XI.
>
> Now I added SSL to my setup and this too works perfectly. A client uses SSL to contact the application server. The Apache as reverse proxy terminates the SSL connection and then connects to the internal application server via SSL.
>
> But now I want the external client to authenticate itself to the application server via client certificate and this won't work at all. I mean as I see it in normal SSL communication the client certificate is taken by the apache wich will not use it because he is not configured to check for client certificates. The application server again is supposed to authenticate the client via its certificate which fails because the Apache does not pass the certificate through to him.
>
> Is there any way of configuring the apache to terminate the SSL connection but pass the client certificate from the outside client to the internal application server???
>
> Thanks in advance,
>
> Christian
>
> Ps.: I have added my httpd.conf part that deals with the XI backend
>
>
> <VirtualHost 172.30.210.210>
> ServerName web004.externerhost.de
> ServerAdmin webmaster@externerhost.de
> # This virtual host does not serve any documents itself but only proxy
>
> ProxyRequests Off
> ProxyPreserveHost On
> RequestHeader set ClientProtocol HTTPS
>
> # Set additional header for letting IE 6 SP2 accept 3rd party cookies
> # in an iframe. See: http://msdn.microsoft.com/library/default.asp?url=
> # /workshop/security/privacy/privacy_ovw_entry.asp for details
> Header add P3P CP="NOI"
>
> SSLEngine On
> SSLCertificateFile /etc/apache2/ssl.crt/web004_cert.pem
> SSLCertificateKeyFile /etc/apache2/ssl.key/web004_key.pem
> SSLProxyEngine On
>
> # Forward all requests for this host to SAP XI
> ProxyPass / https://ux210210.internerhost.lan:8007/
>
> # Rewrite HTTP 302 object moved redirects from SAP XI
> ProxyPassReverse / https://ux210210.internerhost.lan:8007/
> </VirtualHost>
>
if you don't have the frontend apache configured to check for client
certificates i don't see how you can pass the certificates to the
application server.
it sounds as if you will need a "double" verification - one from the
frontend and one from the backend.
we have a setup where we pass the certificate (escaped) to the proxied
server as a RequestHeader (we use mod_rewrite). the verification then
happens at the frontend and the communication (in our case) between
frontend and backend is http, not https.
./allan
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org