Einleitung
Hi,seit der weltweiten Überwachung der NSA wissen wir alle das Verschlüsselung wichtig ist. Wie Ihr selbst HTTPS auf eurer Seite einrichtet zeige ich heute in einem kurzen Tutorial. Ich weise noch mal darauf hin das selbst erstellte Zertifikate bitte nur Lokal und zu Testzwecken genutzt werden sollten. Ok dann lasst uns beginnen.
Voraussetzungen:
Ihr benötigt Debian mit installiertem OpenSSL Modul und den Apache2 Webserver. Den Rest werden wir hier zusammen installieren.SSL Zertifikat erstellen / generieren
Mit Hilfe von OpenSSL können wir uns in relativ wenigen Schritten ein eigenes Zertifikat erstellen.1. Ordner zum speichern des Zertifikates erstellen und dorthin wechseln
mkdir /etc/apache2/ssl cd /etc/apache2/ssl
3. Jetzt erstellen wir unseren privaten Key
openssl genrsa -out sslcert.key 2048
4. Aus dem Key generieren wir nun eine CSR Datei (Zertifizierungsanforderung oder auch engl. Certificate Signing Request). Diese enthält vereinfacht gesagt die Zertifikats Informationen.
openssl req -new -key sslcert.key -out sslcert.csr
Anschließend muss eine Reihe von Informationen eingegeben werden. In unserem Fall geben wir bei "CommonName" localhost ein da wir das Zertifikat für eine lokale Entwicklungsumgebung erstellen. Sie können auch alle anderen Felder leer lassen und diese mit "Enter" überspringen.
Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
5. Jetzt können wir aus der CSR Datei unser Zertifikat generieren. Die Gültigkeitsdauer des Zertifikates kann mit dem Parameter -days angegeben werden. In unserem Fall ist es 1 Jahr gültig.
openssl x509 -req -days 365 -in sslcert.csr -signkey sslcert.key -out sslcert.crt
Apache2 konfigurieren
1. Damit der Apache2 Webserver mit dem Zertifikat umgehen kann aktivieren wir zu nächst das "SSL Modul".a2enmod ssl
2. Damit der Apache auf auf dem richtigen Port lauscht überprüfen wir die "ports.conf" im Ordner /etc/apache2/
cat /etc/apache2/ports.conf
Die Datei sollte in etwa so aussehen. Wichtig ist das auf Port 443 gelauscht wird.
Listen 80Listen 443 Listen 443
3. Jetzt erstellen wir noch eine neue Vhost Config für den SSL Port.
nano /etc/apache2/sites-available/application-ssl.conf
Diese füllen wir dann mit folgendem Inhalt:
DocumentRoot /var/www/application/public ErrorLog /var/www/application/log/error.log CustomLog /var/www/application/log/access.log combined SSLEngine on SSLCertificateKeyFile /etc/apache2/ssl/sslcert.key SSLCertificateFile /etc/apache2/ssl/sslcert.crt Options Indexes FollowSymLinks AllowOverride All Require all granted
4. Im letzten Schritt starten wir Apache neu
service apache2 restart
Eure Seite sollte jetzt über https aufrufbar sein. Die Sicherheitswarnung im Firefox / Chrome sind normal, diese könnt Ihr einfach akzeptieren. Ich empfehle euch aber diese Konfiguration nur für Lokale Entwicklungsumgebungen! Für produktive Umgebungen bitte noch mal gründlich in SSL einlesen und ein Zertifikat von einem anerkannten Zertifikatsanbieter nehmen.
2 Kommentare
Ich erhalte nach der Durchführung diesen Fehler:
ReplyEin Fehler ist während einer Verbindung mit domain.de aufgetreten. SSL hat einen Eintrag erhalten, der die maximal erlaubte Länge überschritten hat. Fehlercode: SSL_ERROR_RX_RECORD_TOO_LONG
Kann es sein das du irgend etwas vergessen hast? Welchen Webserver benutz du?
ReplyKommentar veröffentlichen