​L
ast
​message

​I
 sent
​had
 formatting, I'm sorry.

Hi,
In our reverse proxy, we have a virtual host serving more than one Location.

Both locations require client certificate. SSLCACertificateFile includes
all root CAs trusted by both locations.

So, in Location2 I would like to allow access only to certificates where
the chain is:

CLIENT_CERT
\_ INTERMEDIATE_CERT (Issuer)
        \_ ROOT_CA (issuer's Issuer)  <-- can I access this with SSLRequire?

QUESTION: is there a way to control access by the root CA that is on top of
the chain?

I tried SSLRequire but it seems I can't access the root cert, only the
client cert and the intermediate (issuer) using SSL_CLIENT_I_DN.

I tried to use CustomLog and show %{SSL_CLIENT_CHAIN_1} and _2 but only the
intermediate is logged in _1, nothing is logged in _2.

It seems the only way to do this is splitting location2 to another virtual
host where I trust only the required root CA using SSLCACertificateFe would
prefer to avoid that, we don't want to change the web service endpoint
(both locations are web services).

Here's what I was trying:

<VirtualHost ws.my.domain>
  SSLCACertificateFile bundle.crt
    VerifyClient require
    SSLVerifyDepth 3
  <Location /location1>
...
  </Location>
  <Location /location2>
     VerfiyClient require
     SSLRequire %{SSL_CLIENT_CERT_CHAIN_1} == file("root1.pem")
...
  </Location>
</VirtualHost>

​I appreciate​
 any help,
Felipe

Reply via email to