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