Bei den verschiedenen SSL-Providern geht das Beantragen von SSL-Schlüsseln im Endeffekt ähnlich.
Private Key und Certificate Request#
Um ein Zertifikat zu beantragen, sind zunächst 2 Dateien zu erzeugen:
- ssl.key: Ein Private-Key, der wiederverwendet werden kann
- ssl.csr: Ein Certificate Request, der wiederverwendet werden kann
Email Certificate#
Zunächst muss bei der Certificate Authority eine Email-Adresse zertifiziert werden, damit eine gesicherte Verbindung hergestellt werden kann. Das geht wie folgt:
- Passwort von der Certificate Authority per Email zuschicken lassen
- Passwort bei der Certificate Authority eingeben
- Email Zertifikat mit dem ssl.csr beantragen
- Email Zertifikat herunterladen, möglichst im P12-Format
Bekommt man nur CRT oder PEM, kann das P12 selbst erzeugt werden:
openssl pkcs12 -export -in ssl.crt -inkey ssl.key -certfile 1_Intermediate.crt -name "name@mail.com" -out name@mail.com.p12
Das Email-Zertifikat wird dann im Browser installiert, sodass eine gesicherte Verbindung hergestellt werden kann.
Eigentliches Domain-Zertifikat#
Mit dem ssl.csr beantragt man dann den eigentlichen SSL-Key von der Certificate Authority, der dann als CRT, PEM oder Bundle heruntergeladen werden kann:
- ssl.crt: Ein Key, der nur zusammen mit dem Private-Key ssl.key verwendet werden kann
- sub.class1.server.ca.pem: Ein Indermediate Key, der von der Certificate Authority unterschrieben ist
- ca.pem: Der Root Certification Authority key
Apache SSL#
Die Keys werden in der httpd.conf eingetragen:
SSLCertificateFile "D:/ssl.crt"
SSLCertificateKeyFile "D:/ssl.key"
SSLCertificateChainFile "D:/sub.class1.server.ca.pem"
SSLCACertificateFile "D:/ca.pem"
Probleme#
Falls es zu Problemen im Apache kommt, findet man in logs/error.log den Fehler dazu.
Verschlüsselter Private-Key#
Die Meldung "SSLPassPhraseDialog builtin is not supported on Win32" heißt, der Private-Key darf nicht verschlüsselt sein, sonst kann Apaache den nicht lesen. Also entschlüsselt man ihn:
openssl rsa -in ssl-enc.key -out ssl.key