Apache SSL: Unterschied zwischen den Versionen

Aus MyWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 34: Zeile 34:


openssl pkcs12 -export -inkey cert.key -out cert.pfx < cert.cer
openssl pkcs12 -export -inkey cert.key -out cert.pfx < cert.cer
== Konvertieren von pfx zu .cer und .key Zertifikat ==
openssl pkcs12 -in cert.pfx -out cert.cer -nokeys -nodes<br>
openssl pkcs12 -in cert.pfx -out cert.key -nocerts -nodes

Version vom 1. April 2014, 06:37 Uhr

Erstellen eines SSL Zertifikates unter Linux für Apache mit OpenSSL

Um auf einem Linux Server mit Apache Webseiten mit HTTPS zu nutzen benötigt man ein SSL Zertifikat.
Dazu erstellt man ein Certificate Request mit openssl

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

Die Parameter bedeuten folgendes:

req: es handelt sich um ein Cert-Request
-new: erzeuge ein neues Cert-Request
-newkey rsa:2048: erzeugt einen Private-Key für den Server mit RSA 2048 bit Schlüssel
-nodes: Private-Key nicht verschlüsseln. Sonst müsste man beim starten von Apache immer das SSL Passwort eingeben -keyout <file.key>: Private-Key Datei -out <file.key>: Cert-Request Datei

Beim Erstellen des Requests wird man u.a. nach dem Common Name (CN) gefragt.
Der CN muss dabei der FQDN des Servers bzw. der Webseite sein.

Den Request bzw. dessen Inhalt schickt man an eine CA oder signiert das Zertifikat mit einer eigenen CA z.B auf dem Windows Server (dazu weiter unten mehr)

Hat man das Zertifikat von der CA erhalten (Apache benötigt es im DER Base-64 Format) kopiert man die Datei (oder deren Inhalt) auf den Linux Server

Wenn ein Key in verschlüsselter Form vorliegt (und mit einer Passphrase gesichert ist), muß die Passphrase bei jedem Neustart des Apache Dienstes neu eingegeben werden. Wenn der Key im Klartext vorliegt, ist das nicht notwendig.
Um Key zu entschlüsseln und die Passphrase zu entfernen ist der folgende Aufruf notwendig:

openssl rsa -in server-rsa-key.pem > server-key.pem

Nun verschiebt man das Zertifikat und den entschlüsselten Key in den /etc/apache/ssl Verzeichnis
In der Apache-Konfig bzw. der entsprechenden Seite /etc/apache/sites-enabled fügt man in der VirtualHost Konfiguration noch folgendes ein:

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/cert.key

Nach einem Neustart des Apache Servers sollte man nun HTTPS/SSL nutzen können


Hier nun die Erklärung wie man mit Windows das Zertifikat erstellt:

Man benötigt die "Active Directory Certificate Services" Rolle
Ruft dann die Webseite http://Server_mit_AD_CA_Rolle/certsrv auf und klickt auf "Request a certificate"
Nun auf "advanced certificate request" und dann "Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file, or submit a renewal request by using a base-64-encoded PKCS #7 file"
Danach fügt man den Request Inhalt ein.
WICHTIG: Darauf achten, dass bei Template Webserver steht und nicht User, da sonst der CN durch den aktuellen Benutzername ersetzt wird.

Zusammenführen (merge) von Zertifikat und Key

openssl pkcs12 -export -inkey cert.key -out cert.pfx < cert.cer

Konvertieren von pfx zu .cer und .key Zertifikat

openssl pkcs12 -in cert.pfx -out cert.cer -nokeys -nodes
openssl pkcs12 -in cert.pfx -out cert.key -nocerts -nodes