I have an existing PKI into which I am trying to integrate an OpenVPN server. I have included CRL Distribution Points into each CA certificate in my chain and I publish the CRLs at a location that is reachable from my OpenVPN server.
The problem is that the OpenVPN server seems to completely ignore the CRL Distribution Points extension in favour of its own --crl-verify
option. If I revoke a certificate for a user and publish a new CRL, OpenVPN will happily continue to let that client connect. I don't understand why OpenVPN doesn't read these extensions given that they were added exactly for this purpose.
I can only think of 2 alternative ways to check my CRLs:
1) I can have a cronjob that copies the CRLs to the OpenVPN server and use the --crl-verify
option. But since I have a chain of CAs, how do I get all the CRLs into one file? If I use the folder mode of --crl-verify
, is it a problem that each CA in the chain has its own serial number scheme?
2) I have tried to avoid calling any external scripts in favour of using only builtin stuff under the assumption that the more I do manually, the more likely I am to introduce a security weakness. Am I wrong? Is writing my own script to check my CRLs the correct option?
Is there any way that I can get OpenVPN to check the CRL Distribution Points included in my certificate chain, preferably using a mechanism built into OpenVPN itself?
EDIT: It would also be nice to know if there are any ways to do this on the client side as well (ie, for clients to check the validity of the OpenVPN server's certificate). It would be so much simpler if --crl-verify
took a URL.