

Heute: Wie erstelle ich ein SSL-Certificate für den Apache Web-Server ?
Erst mal ein paar allgemeine Sachen über SSL
SSL ist die Abkürzung von Secure Socket Layer. SSL ist eine Methode der Datenübertragung, bei der alle Daten, die zwischen Server und Client ausgetauscht werden verschlüsselt übertragen werden.
Die Verschlüsselung dieser Daten wird mit dem sog. Zertifikat vorgenommen. Der Datenverkehr findet zudem auf dem Port 443 statt, nicht wie bei dem unverschlüsselten HTTP-Protokoll (Port 80). (Der "verschlüsselte Web-Server" ist dann über https://blablubb.de erreichbar nicht wie gewohnt unter http://blablubb.de :)
So... und nun wollen wir beginnen dass Zertifikat zu erstellen...
Für die Erstellung des Zertifikates benötigst Du das Programm openssl. Wenn Di Debian hast, dann kannst Du Dich glücklich schätzen, denn ein apt-get install openssl genügt :D
Jetzt geht es daran, die Konfigurationen für das Zertifikat festzulegen. Hierzu musst Du eine Datei erzeugen, z.B. cert.conf....
Wenn Du die Datei erstellt hast, dann öffnet diese und trag folgende Zeilen ein:
# Hier wird das Device definiert, welches Zufällige Werte für den Schlüssel erzeugt angegeben....(/dev/random und /dev/urandom hab ich probiert.... hat ber bei mir nich gefunzt ?!)
RANDFILE = /tmp/random
[ req ]
# Hier wird die größe des Schlüssel festlegegt... Je größer der Schlüssel ist, desto sicherer ist dieser! ACHTUNG! Wenn Du den Schlüssel zu groß machst, kann es passieren, dass der Datentransfer sehr langsam läuft, denn eine Verschlüsselung benötigt sehr viel CPU-Power. Ein Schlüssel bis 1024 Bit soltle _relativ_ sicher sein und zudem schnell genug sein!
default_bit = 4096
# Jetzt wird festgelegt, welches die Datei sein wird, in welche der Schlüssel gelegt wird...
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
# Nach der allgemeinen Konfigurationen beginnt jetzt die Konfiguration der Angaben, wie z.B. Standort ist, oder wie Dein Server heisst. Natürlich müssen hier nicht die richtigen Angaben gemacht werden. Aber wer seine Besucher nicht verwirren möchte, der sollte diesen entgegenkommen und sollte schon richtige Angaben machen ;)
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
# Hier musst Du das Land angeben, in welchem der Server steht (DE = Deutschland, US=United States, usw...)
countryName_default = DE
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
# Hier den Staat, oder den Bundeslandnamen eingeben
stateOrProvinceName_default = Deutschland
localityName = Standort Name
# In welchem Ort steht der Server ?
localityName_default = Kaiserslautern
organizationName = Organisation
# Wie heisst Deine Organisation ? ;)
organizationName_default = Hacker-Soft =)
organizationName_max = 64
organizationalUnitName = Organistaionseinheit
# An welche Abteilung kann man sich wenden, die für den Server zuständig ist ?
organizationalUnitName_defaut = Help! I got hacked!
organizationalUnitName_max = 64
commonName = Servername im WEB
# Diese Variable _MUSS_ mit dem DNS-Namen Deines Servers übereinstimmen sonst meckert der Browser rum :D
commonName_default = www.microsoft.de
commonName_max = 64
# Da alle Angaben später noch einmal Abfragt werden, kannst Du hier Deine E-Mail-Adresse auch später noch eingeben :D
emailAddress = Email Address
emailAddress_max = 40
Das war`s jetzt musst Du die Datei speichern und schließen.
Damit Du jetzt dass Zertifikat erhältst musst Du nun folgenden Befehl eingeben:
openssl req -config ./cert.conf -new -x509 -days 365 -nodes -out ./certificate.cer -keyout ./certificate.key
Der Befehl heisst soviel wie: Erstelle mir ein neues (-new) X509-Zertifikat (-x509), welches für 365 Tage (-days 365) gültig ist. Lege das Zertifikat im aktuellen Verzeichnis unter dem Dateinamen certificate.cer ab (-out ./certificate.cer) und den Schlüssel legst Du auch im aktuellen Verzeichnis unter dem Dateinamen certificate.key ab (-keyout ./certificate.key)
Wenn alles glatt läuft sollte eine positive Rückmeldung erfolgen. (Oder auch gar keine, je nach dem)
Jetzt hast Du die Möglichkeit, dass Zertifikat in Deine httpd.conf mit einzubauen. Dazu werde ich vielleicht später auch noch ein Howto schreiben.
Bye... Prophet