Wichtig: cert ggf. durch den Namen des zu zertifizierenden Services ersetzen. Um ein Zertifikat zu generieren muss die CA Datei vorliegen, wie oben generiert. Auch muss das Password der CA-Datei bekannst sein.
openssl genpkey -algorithm RSA -out cert.key -outform PEM -pkeyopt rsa_keygen_bits:2048
Im Anschluss an die cert.key Datei muss nun die server.csr Datei erzeugt werden mit folgendem Befehl.
openssl req -new -key cert.key -out cert.csr
Für die weitere Konfiguration muss eine Textdatei angelegt werden mit dem Namen cert.ext und mit folgendem Inhalt beschrieben werden.
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
IP.1 = <IP>
DNS.1 = <Domain>
Unter [alt_names] müssen unbedingt IP und/oder Domain eingefügt werden. Falls keine Domain existiert muss die Zeile gelöscht werden. Soll die Zertifikatsdatei für mehrere IPs und/oder Domains gültig sein, können diese durch Nummerierung auch hinzugefügt werden. Z.B.:
[...]
[alt_names]
IP.1 = <IP_1>
IP.2 = <IP_2>
IP.3 = <IP_3>
DNS.1 = <Domain_1>
DNS.2 = <Domain_2>
openssl x509 -req -in cert.csr -CA self-signed-ca-cert.crt -CAkey private-ca.key -CAcreateserial -out cert.crt -days 365 -sha256 -extfile cert.ext
Durch das Anpassen des Parameters -days kann die Gültigkeit des Zertifikates festgelegt werden. In diesem Fall beträgt die Gültigkeit genau ein Jahr.
Quelle: https://stackoverflow.com/questions/4691699/how-to-convert-crt-to-pem
openssl x509 -in cert.crt -out cert.pem -outform PEM
oder für manche Webserver (wie auch eine fritzbox)
cat cert.crt cert.key > cert.pem
openssl pkcs12 -export -inkey cert.key -in cert.pem -out cert.p12 -password pass:<password>