I'm developing a set of internal websites and services for a customer who has high levels of bureaucracy and strict formal rules about many things, one of them being "not storing passwords in plain text".
So, when they inspected my system configuration manual, they immediately pointed out that they could not accept storing private key passwords in a text file for Nginx to load on startup. It doesn't matter that the file is readable only by root.
My arguments, such as "if someone got root access to your server then you have bigger problems than leaked private keys", "The attacker could extract the keys from server process RAM anyway, no matter what encryption is being used", "It's a recursive problem because if I encrypt the password file, Nginx will need the password to decrypt the password file to decrypt the keys" did not work.
It seems, the customer is just used to how IIS works - the private keys are protected by CNG mechanisms and you don't have to store plain text passwords or keys or API tokens anywhere.
How do I achieve that on Ubuntu and Nginx without making things too messy?
I really don't want to migrate everything to Windows and then explain the customer why they need one more Windows Server licence when the initial idea was to use free Ubuntu server.