Zum Hauptinhalt springen

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.

/etc/apache2/sites-available/ssl.conf
<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>