I have an executable, and I have the SSL certificates and keys necessary to establish the secure connection. The application performs self-updating by downloading and replacing itself with an updated executable. What is the proper way to distribute these credentials when I ship my executable?
The keys themselves are used by the client to open a secure, persistent TLS connection to a server endpoint.
- I could bundle them in a .zip with an installer script that places the key files where they need to go, but it is difficult to update those keys without shipping another .zip and installing over it.
- I could encode and store the keys as strings in the binary itself. This makes updating easier, but even encoded key strings sound like a security concern. But then again, so is shipping them in a .zip.
The executable itself is not publicly available, rather it is distributed intentionally to end clients. All else equal, what would be a proper way to distribute these credentials?