On F5 BigIP LTM you can create a SSL profile even if you don’t know the private key passphrase
This workaround can be applied only if you’ve used the private key on the same F5 BigIP node already. In my case, I had to reuse the same cert+key from a server-ssl profile on a client-ssl profile. And because business was in a hurry and they didn’t have the private key anymore, I had to find alternative ways of making it work.
This can be achieavable by copying the config snippet from bigip.conf
:
ltm profile server-ssl /Common/<name> {
app-service none
ca-file /Common/XXXXXXcertXXXXX.crt
cert /Common/XXXXXXcertXXXXX.crt
cert-key-chain {
XXXXXXkeyXXXXX_privkey {
cert /Common/XXXXXXcertXXXXX.crt
key /Common/XXXXXXkeyXXXXX_privkey.key
passphrase <random hash value>
}
}
chain none
defaults-from /Common/serverssl
inherit-certkeychain false
key /Common/XXXXXXkeyXXXXX_privkey.key
passphrase <different hash value>
peer-cert-mode require
}
And re-added in bigip.conf
as a client-ssl profile.
ltm profile client-ssl /Common/<name> {
app-service none
ca-file /Common/XXXXXXcertXXXXX.crt
cert /Common/XXXXXXcertXXXXX.crt
cert-key-chain {
XXXXXXkeyXXXXX_privkey {
cert /Common/XXXXXXcertXXXXX.crt
key /Common/XXXXXXkeyXXXXX_privkey.key
passphrase <random hash value>
}
}
chain none
defaults-from /Common/clientssl
inherit-certkeychain false
key /Common/XXXXXXkeyXXXXX_privkey.key
passphrase <different hash value>
peer-cert-mode require
}
then verify the config: tmsh load sys config verify
. If you don’t get errors just drop the verify
part in order to load the new config: tmsh load sys config
These commands work only from linux shell, if you’re already in tmsh just ignore the tmsh part of the command.
And that’s it. Make sure to have the same passphrase and to do this on the Standby node. If everything is ok and you see the change in the config, just sync it to the Active peer node. I’ve tried to add the lines to a new file and just merge the config but it didn’t work as it couldn’t get the passphrase to read the key. This was the only option I could find. Good luck!