Erstellung und Installation eines SSL-Zertifikats für Apache
![]() |
Das verwendete System ist ein Dual-Opteron mit dem Kernel 2.6.19-ck2-r3. |
Ich beschreibe hier kurz, wie man selbst ein Zertifikat für einen Webserver erstellt, um SSL-Verbindungen erlauben zu können.
In Benutzung ist Apache Version 2.0.59.
Zuerst benötigt Ihr ein RSA Zertifikat:
![]() |
openssl genrsa -out /etc/apache2/ssl/sysalyser.de/server.key 1024 |
Da ich mehrere virtuelle Server unter Apache laufen lasse, habe ich zuerst den Ordner /etc/apache2/ssl/sysalyser.de/ erstellt.
Dies bleibt Euch natürlich frei, wohin Ihr die Zertifikate speichern wollt.
Als nächstes braucht Ihr eine Art Zertifikatsantrag, um dies einer Zertifizierungsstelle übermitteln zu können (ganz theoretisch):
![]() |
openssl req -new -key /etc/apache2/ssl/sysalyser.de/server.key -out /etc/apache2/ssl/sysalyser.de/server.csr |
![]() |
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter ‚.‘, the field will be left blank. —– |
Wie Ihr seht, müsst Ihr einige Angaben machen. Im Prinzip ist es egal, was Ihr dort eintippt – allerdings wirken unvollständige oder offensichtlich
falsche Angaben nicht gerade vertrauenswürdig.
Wichtig ist die Angabe bei „Common Name (eg, YOUR name) []:“. Hier müsst Ihr Euere richtige Domain eintragen, also die, die der Benutzer im
Browser eingibt (ohne www.).
Seid Ihr mit diesem Schritt fertig, schätze ich mal, dass Ihr Euch doch lieber selbst zertifizieren wollt:
![]() |
openssl x509 -req -days 999 -in /etc/apache2/ssl/sysalyser.de/server.csr \ -signkey /etc/apache2/ssl/sysalyser.de/server.key \ -out /etc/apache2/ssl/sysalyser.de/server.crt |
Hiermit habt Ihr die Erstellung des Zertifikats abgeschlossen.
Ihr braucht selbstverständlich nicht immer den absoluten Pfad angeben, wenn Ihr Euch in das Verzeichnis bewegt, in das die Dateien abgelegt werden sollen.
Daher fürs schnelle copy & paste:
![]() |
openssl genrsa -out server.key 1024 |
![]() |
openssl req -new -key server.key -out server.csr |
![]() |
openssl x509 -req -days 999 -in server.csr -signkey server.key -out server.crt |
Klar ist, dass der Apache noch nichts damit anfangen kann, dass das Zertifikat erstellt wurde.
Daher öffnet die Datei /etc/apache2/httpd.conf oder diejenige, die Euer Apache einliest:
![]() |
vim /etc/apache2/httpd.conf |
![]() |
# /etc/apache2/httpd.conf
… <VirtualHost 62.75.155.130:443> DocumentRoot „/var/www/web5/html“ ServerAdmin julian.hofmann@sysalyser.de SSLEngine on AddLanguage de .de <Directory „/var/www/web5/html“> Order allow,deny </Directory> |
Somit wäre das alles. Sofern Ihr nicht vergessen habt, Eueren Server auf Port 443 (oder auf welchem Euer Apache lauschen soll) einzustellen. Dies ist
die Option „Listen 443″ in der httpd.conf. Ist der Port nicht genannt, müsst Ihr dies in die Datei einfügen.
Vergesst auch nicht, den Apache neu zu starten; das Flag „-DSSL“ nicht vergessen, ansonsten kann der Apache mit den „SSL…“-Angaben nichts
anfangen.