Apache Webserver |
|
Der Webserver mit der weltweit höchsten Installationsrate lässt sich im Rahmen der Standard-Installtion der entsprechenden Distribution mit installieren.
Etwas kniffeliger wird die Einrichtung für gesicherte Verbindungen. Diese erkennt man am Symbol des geschlossenen "Vorhängeschloss" des Browsers bzw. and der Protokollkennung https:// (anstelle von http://) in der Adresszeile des Browsers.
Im Wesentlichen ist anzumerken, das für einen physikalischen Server nur ein Zertifikat erstellt und verwaltet werden kann, das anschliessend von allen virtuellen Hosts genutzt wird.
Zusammenfassend besteht das gesamte Procedere aus den folgenden Schritten, die im beschriebenen Fall im Verzeichnis /etc/httpd/conf/servername ausgeführt werden:
<b>Erstellen des RSA private key</b> openssl genrsa -des3 -out server.key 1024
<b>Erstellen des Certificate Signing Request (CSR)</b> openssl req -new -key server.key -out server.csr
Die Anforderung würde eigentlich an eine ofizielle und kommerzielle Certifying Authority (CA) versandt und von diesen unterzeichnet werden. Dieser Vorgang kostet jedoch Geld und ist für ein kleines Unternehmen, das sich auf den eigenen Webserver per https einloggen möchte nicht notwendig.
Um diesen Vorgang selbst zu übernehmen "eröffnet" man gewissermassen eine eigene CA und unterzeichnet sein eigenes Zertifikat selbst:
<b>Erstellen des private key der eigenen Certificate Authority (CA)</b> openssl genrsa -des3 -out ca.key 1024
<b>Erstellen des eigenen CA-Zertifikats</b> openssl req -new -x509 -days 365 -key ca.key -out ca.crt
<b>Signieren des Server-Zertifikats</b> Da das Signieren als zu kompliziert beschrieben wird, soll hierfür das script sign.sh aus dem source-Paket zu openssl benutzt werden, das unter http://www.openssl.org/source verfügbar ist und sich im Verzeichnis pkg.contrib befindet: ./sign.sh server.csr
<b>server.crt</b> Diese Ergebnis-Datei ist das eigentliche Server-Zertifikat, das in die httpd.conf bzw. in die ssl.con des Apache-Webservers eingebunden wird: SSLCertificateFile /etc/httpd/conf/servername/server.crt SSLCertificateKeyFile /etc/httpd/conf/servername/server.key
<b>Apache Neustart</b> Beim Neustart des Webservers mit /etc/init.d/httpd restart fragt der Prozess die Passphrase des Zertifikats an. Um diese nicht jedesmal manuell eingeben zu müssen und das automatische Durchstarten des Servers zu gewährleisten entfernt man die Verschlüsselung des RSA private key nach dem Kopieren des Original-Zertifikats mit cp server.key server.key.org openssl rsa -in server.key.org -out server.key
Anschliessend setzt man noch die exclusiven Leserechte für root mit chmod 400 server.key
Weiterführende Infos und Quelle zu diesem Thema http://httpd.apache.org/docs-2.0/ssl/ssl_faq.html#aboutcerts
|