Even if you’re not using TLS in your FreeDiameter instance, you’ll still need a certificate in order to start the stack.
Luckily, creating a self-signed certificate is pretty simple,
Firstly we generate your a private key and public certificate for our required domain – in the below example I’m using dra01.epc.mnc001.mcc001.3gppnetwork.org, but you’ll need to replace that with the domain name of your freeDiameter instance.
openssl req -new -batch -x509 -days 3650 -nodes \ -newkey rsa:1024 -out /etc/freeDiameter/cert.pem -keyout /etc/freeDiameter/privkey.pem \ -subj /CN=dra01.epc.mnc001.mcc001.3gppnetwork.org
Next we generate a new set of Diffie-Hellman parameter set using OpenSSL.
openssl dhparam -out /etc/freeDiameter/dh.pem 1024
Lastly we’ll put all this config into the freeDiameter config file:
TLS_Cred = "/etc/freeDiameter/cert.pem", "/etc/freeDiameter/privkey.pem";
TLS_CA = "/etc/freeDiameter/cert.pem";
TLS_DH_File = "/etc/freeDiameter/dh.pem";
If you’re using freeDiameter as part of another software stack (Such as Open5Gs) the below filenames will contain the config for that particular freeDiameter components of the stack:
- freeDiameter.conf – Vanilla freeDiameter
- mme.conf – Open5Gs MME
- pcrf.conf – Open5Gs PCRF
- smf.conf – Open5Gs SMF / P-GW-C
- hss.conf – Open5Gs HSS