I am looking for a neat security implementation for clients to talk to my Apache instance.Its basically a system to system API communication and not involves any clients outside the organisation. What we have implemented so far looks like below,
- We created a client key and generated a CSR.
- CSR signed by the Organisation CA.
- Out Certificate combined with the Client private key and generated the pfx. The same has been shared to the API caller system.
The below modifications has been made to the Apache httpd.conf
SSLVerifyClient require SSLVerifyDepth 3 <Location /> SSLRequire %{SSL_CLIENT_S_DN_CN} eq "client_cn_name" </Location> Is this the right approach? The problem here is there is no server side validation,in the sense nowhere its handshaking with the Apache instance. The client cert is directly under the Root cert. I was thinking is it a good idea to sign the client csr by the Apache domain private key which is actually issued by Organisation CA?
Also could someone explain how this SSLRequire directive will behave. I tried to generate a self signed cert that looks similar to the client cert with same CN for root and client. But the handshake didn't go well, however I am not sure if there is any vulnerability chance that a self signed cert can pass this security?
Appreciate your thoughts.