Tag 11: SSL
1 SSL
1.1 Auftrag 1: SSL/TLS einrichten und installieren
Als erstes muss OpenSSL installiert werden.
Dafür müssen die folgenden zwei Commands ausgeführt werden:
sudo apt update
sudo apt install openssl
Wenn OpenSSL erfolgreich installiert wurde kann das Modul "Rewrite" für den Apache Server aktiviert werden.
sudo a2enmod rewrite
1.2 Auftrag 2: Erstellen von Keys/Zertifikaten
Mit OpenSSL kann jetzt ein selbstsigniertes Zertifikat erstellt werden
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache.crt
1.3 Auftrag 3: SSL-Verschlüsselung aktivieren
Die Konfiguration für das SSL-Modul liegt unter /etc/apache2/ports.conf.
<IfModule mod_ssl.c>
Listen 443
</IfModule>
Jetzt muss das SSL Modul noch aktiviert werden und anschliessend muss der Apache Server neugeladen werden.
sudo a2enmod ssl
sudo systemctl reload apache2
Jetzt kann SSL genutzt werden und dafür wird eine neue Webseiten-Config erstellt (oder eine bereits bestehende genutzt), die für die verschlüsselte Webseite zuständig ist.
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key
# Pfad zu den Webinhalten
DocumentRoot /var/www/test
</VirtualHost>
1.4 Auftrag 4: Redirecting
Um NUR über die verschlüsselte Webseite erreichbar zu sein, muss die HTTP-Seite auf die HTTPS-Seite umgeleitet werden. Dafür kann eine der folgenden Konfiguration in die HTTP-Config kopiert werden:
Redirect - Temorär (302)
<VirtualHost *:80>
ServerName www.domain.com
Redirect 302 / https://www.domain.com
</VirtualHost>
Redirect - Permanent (301)
<VirtualHost *:80>
ServerName www.domain.com
Redirect 301 / https://www.domain.com
</VirtualHost>
Rewrite
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>