Eigenes Zertifikat erstellen
1 2 3 4 |
mkdir -p /etc/apache2/ssl openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0 chmod 600 /etc/apache2/ssl/apache.pem |
Den Wert nach -days nach Belieben anpassen (je nachdem, wie lange das Zertifikat gelten soll).
SSL Aktivieren
Um SSL/TLS verwenden zu können, muss die Datei /etc/apache2/ports.conf von
1 2 3 4 |
Listen *:80 #<IfModule mod_ssl.c> # Listen 443 #</IfModule> |
zu
1 2 3 4 |
Listen *:80 <IfModule mod_ssl.c> Listen 443 </IfModule> |
geändert werden; der Port 443 muss für den Server aus dem Internet erreichbar sein (Portforwarding im Router)
Somit ist der Apache Webserver nach einem Neustart (sudo service apache2 reload und dem anschließenden aktivieren des ssl Moduls mittels sudo a2enmod ssl und einem erneuten Neustart sudo service apache2 force-reload) für die Verwendung von SSL zum Aufbauen verschlüsselter Verbindungen über den Port 443 konfiguriert.
Verbindung zur SSL verschlüsselten Adresse umleiten
Die Webseite ist weiterhin über eine unverschlüsselte Verbindung erreichbar. Um alle Anfragen der nicht verschlüsselten Verbindung an die verschlüsselte Verbindung weiterzuleiten, ist das Apache Modul mod_rewrite nötig. Mit Hilfe dieses Moduls können Anfragen für bestimmte Adressen und Ports automatisch umgeleitet werden – in unserem Fall alle Verbindungen von der Adresse http://MyHomepage.de (Port 80) nach https://MyHomepage.de (Port 433). Durch folgenden Eintrag in der /etc/apache/apache2.conf wird die Umleitung für alle Webseiten und Verzeichnisse auf dem Apache Webserver aktiviert:
1 2 3 4 5 6 7 |
# global redirecting all http requests to https <VirtualHost *:80> ServerName MyHomepage.de <Location /> Redirect permanent / https://MyHomepage.de/ </Location> </VirtualHost> |
Sollen nur einzelne Verzeichnisse und dessen beinhaltende Struktur bzw. Seiten verschlüsselt übertragen werden, wie z.b. für den Adminbereich einer WordPresseite wird die .htaccess Datei in dem betreffenden Verzeichnis erstellt (http://www.wordpress/wp-admin/.htaccess).
1 2 3 4 5 6 7 |
# BEGIN site/wp-admin <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> # END site/wp-admin |
Dabei kann es allerdings zu Fehlern kommen, wenn Teile/Plugins der Seite auf die Ordner zugreifen, die verschlüsselt übertragen werden sollen.
by Speefak | Ubuntuusers Wiki | www.redirect301.de | www.websmith.de | www.selfhtml.org | www.sysadminslife.com