Please don't take me wrong but I have a feeling we don't understand each other. Allow me to restate the problem.
The status:
- OpenVPN server is working well
- clients can connect to server without any problem
Thus normal operation is flawless.
The problem:
As you can see in configuration I've posted, we are using certificate authentication.
Problem occurs once the certificate for client expires.
I generate the new one, replace it on the client and restart the OpenVPN client to take the new certificate (which is actually renewed certificate).
However because of security measure introduced in 2.1_rc21, OpenVPN is now storing hash from whole certificate and will refuse client which during server session changes the certificate. See this code which is triggered in such situation ->
https://community.openvpn.net/openvpn/browser/ssl_verify.c?rev=82f925b60c0f029295975e64d9acabb53c0a5e3c#L166
The workaround:
right now I am restarting the server after each certificate change at client side. However I found this as clunky workaround.
The solution:
I am not an OpenVPN developer so this are only suggestion:
- provide configuration directive which will control how the OpenVPN will handle the certificate change during server session
- provide management console command to reset hash for particular client
Thanks