===== Apache2 SSL einrichten =====
Centos 7 notwendige Pakete installieren:
yum install openssl-perl -y
Debian 10.x notwendige Pakete installieren:
apt-get install perl-openssl-defaults
Es gibt zwei Möglichkeiten seinen Webserver mit SSL auszustatten, einmal indem man den
Webserver mit einen selbsterstellten Zertifikat versteht oder wenn man eine eigene
besitzt, über eine Zertifikat von einer Zertifizierungsstelle. Hierfür kann man die
kostenfreie Let's Encrypt Zertifizierungsstelle nutzen.
Beide Methoden werden hier aufgefuhrt.
===== SSL über selbsterstelle Zertifikate =====
CA.pl prüfen ggfs. anpassen:
vi /etc/pki/tls/misc/CA.pl
Überprüfen der Variable CATOP in CA.pl: $CATOP="/etc/pki/CA";
==== CA (certification authority) erstellen ====
Erstellt ein Rootzertifikat, fall noch nicht vorhanden
-> Mit Passfphrase
/etc/pki/tls/misc/CA.pl -newca
-> wurde erstellt /etc/pki/CA/cacert.pem (Öffentlich)
/etc/pki/CA/private/cakey.pem (Privat)
==== Zertifikatsanfrage erstellen ====
cd /etc/pki/CA
/etc/pki/tls/misc/CA.pl -newreq
-> wurde erstellt /etc/pki/CA/newreq.pem
-> wurde erstellt /etc/pki/CA/newkey.pem
==== Zertifikat mit eigener CA signieren ====
/etc/pki/tls/misc/CA.pl -sign
-> wurde erstellt /etc/pki/CA/newcert.pem (Öffentlich)
-> wurde erstellt /etc/pki/CA/newkey.pem (Privat)
==== Zertifikate für www.meinwebserver.de zur Apache2-Konfiguration ablegen ====
mv /etc/pki/CA/newcert.pem /etc/pki/CA/certs/meinwebserver.de-cert.pem
mv /etc/pki/CA/newkey.pem /etc/pki/CA/private/meinwebserver.de-key.pem
==== Passphrase entfernen ====
Dies ist notwendig, damit der Webserver bei einem Neustart ohne Eingabe
einer Passphrase hochfahren kann:
openssl rsa -in -out
also hier: openssl rsa -in /etc/pki/CA/private/meinwebserver.de-key.pem -out meinwebserver.de-key-decrypted>
Die Datei /etc/pki/CA/cacert.pem sollte den Clients zum Import bereitgestellt werden.
==== Konfiguration des Apache2 mit den SSL-Key ====
Folgende Modul sollte aktiviert werden:
a2enmod ssl
a2enmod ssl
Die Konfigurationsdatei des Webservers, z. B. www.fritz.box kopieren:
cp /etc/apache2/sites-available/www.meinwebserver.de.conf /etc/apache2/sites-available/www.meinwebserver.de-SSL.conf
/etc/apache2/sites-available/www.meinwebserver.de.conf bearbeiten und wie folgt
ändern/ergänzen, damit eine Umleitung von http auf https erfolgt:
...
RewriteEngine on
#
RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
RewriteRule ^$ doku.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) doku.php?id=$1 [QSA,L]
RewriteRule ^index.php$ doku.php
#
## Not all installations will require the following line. If you do,
## change "/dokuwiki" to the path to your dokuwiki directory relative
## to your document root.
RewriteBase /
#
## If you enable DokuWikis XML-RPC interface, you should consider to
## restrict access to it over HTTPS only! Uncomment the following two
## rules if your server setup allows HTTPS.
RewriteCond %{HTTPS} !=on
RewriteRule ^lib/exe/xmlrpc.php$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
...
Jetzt die /etc/apache2/sites-available/www.meinwebserver.de-SSL.conf wie folgt ergänzen:
ServerName www.meinwebserver.de:443
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
SSLCertificateFile "/etc/pki/CA/certs/meinwebserver.de-cert.pem"
SSLCertificateKeyFile "/etc/pki/CA/private/meinwebserver.de-decrypt-key.pem"
SSLCACertificateFile "/etc/pki/CA/cacert.pem"
...
Neue .conf-Datei aktivieren:
a2ensite www.meinwebserver.de-SSL
Apache2 neue starten:
systemctl restart apache2
**Jetzt ist die Webseite nur noch per https://www.meinwebserver.de erreichbar. HTTP Zugriffe werden umgeleitet.**
\\
\\
\\
===== SSL mit eigener Domain über Let's Encrypt =====
Debian 10.x notwendige Vorbereitungen
# Backports für Debian 10.x installieren um die notwendigen neuesten Pakete für certbot zu installieren
echo "deb http://deb.debian.org/debian buster-backports main" >/etc/apt/sources.list
# Backports einlesen
apt update
# Notwendige Pakete installieren
apt install snapd -y
snap install core
snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
# Certbot ausführen und eigene Domain anmelden -> muss von außen per HTTP (Port 80) und HTTP (Port 443) erreichbar sein
# Die Angabe hinter -d muss der ServerName sein, der in der Webserver.conf aufgeführt ist.
certbot --apache -d www.your_domain
# Damit das Zertifikat immer verlängert wird, solange der Webserver aktiv ist, noch entsprechenden Cron-Eintrag erstellen
echo "#!/bin/sh" >/etc/cron.daily/certbot
echo "/usr/bin/certbot renew --dry-run" >>/etc/cron.daily/certbot
chmod 0755 /etc/cron.daily/certbot
**Jetzt ist die Webseite nur noch per https://www.fritz.box erreichbar. Zugriffe aus http://www.fritz.box werden automatisch umgeleitet.**