Es wird immer Wichtiger Daten Sicher zu übertragen. Aufgrund dessen habe ich micht entschlossen ein kleines Tutorial zu schreiben, wie man ein SSL Key, ein Signing Request (zum signieren) und das dazugehörige Zertifikat erstellt. Anbei noch wie man das ganze in Apache2 integriert!
Die benötigten Pakete installieren:
apt-get install openssl
SSL Key erstellen:
openssl genrsa -out maffert.key 1024
Signing Request erstellen (braucht man um ein Zertifikat zu erstellen)
openssl req -new -key maffert.key -out maffert.csr
Dabei werden Daten abgefragt, ich trage dort immer folgendes ein (bei „Common Name“, die Domain oder Subdomain eintragen) :
Country Name (2 letter code) [AU]:DE State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []:Bielefeld Organization Name (eg, company) [Internet Widgits Pty Ltd]:. Organizational Unit Name (eg, section) []:. Common Name (eg, YOUR name) []:test.maffert.net Email Address []:certmaster@maffert.net A challenge password []:. An optional company name []:.
Zertifikat selbst signieren (für 365 Tage, kann auch beliebig geändert werden):
openssl x509 -req -days 365 -in maffert.csr -signkey maffert.key -out maffert.crt
Apache2 sagen, das er das Modul SSL aktivieren soll
a2enmod ssl
Die erzeugten Dateien kopieren und den Ordner dementsprechend erstellen:
mkdir /etc/ssl/private/test.maffert.net mv maffert.crt maffert.key /etc/ssl/private/test.maffert.net/
Die vHost von Apache2 editieren und folgendes hinzufügen
SSLEngine on SSLCertificateFile /etc/ssl/private/test.maffert.net/maffert.crt SSLCertificateKeyFile /etc/ssl/private/test.maffert.net/maffert.key
Jetzt noch Apache2 neustarten und die Seite sollte via https://domain.de erreichbar sein:
/etc/init.d/apache2 restart
Etwas nützliches
Weiterleitung von HTTP auf HTTPS über die Apache2 Konfiguration (muss in die vHost):
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
oder via .htaccess:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
Wichtig hierbei ist mit R=301 zu arbeiten, R=301 definiert explizit den Status Code 301 (permanent redirect) für eine Permanente Weiterleitung!