We are currently shipping a product to our customers that is server-client-based running on Windows server 2016 (server) and Windows 10 (clients). The server is installed on-premise in our customer's infrastructure. We are always installing the server in our customer's network for our customer, but it runs on the HW from our customer and is also officially operated by him. The clients are installed by our customer.
We are using certificates to secure the traffic between server and client. The customer can chose to use their own certificates or we create a self-signed certificate when we install the solution on site.
Many customers don't want to use their own certificates and use the self-signed certificates that we generate during installation of the server. When the customer needs to install a client they are installing the self-signed certificate of our server on the client machine. This way there is a trusted relationship and men-in-the-middle-attacks are avoided even though we use self-signed certificates and can't prove that we are in fact who we say we are.
The problem occurs when our self-signed certificates run out (this didn't happen yet as the service is quite new). How will we be able to update the certificates on the clients? If the certificate has already run out we will have the same problem again as in the beginning and our customer would need to "carry" the new certificate to all the installed client PCs. I'm thinking that there might be an establishes mechanism to push the new certificate to all clients while the certificate is still valid.
- Is this a real problem or do I have an error in my assumptions?
- If yes, how can we solve this in the most elegant way without much manual efforts?
Thanks in advance for your help!