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.
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";
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)
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
/etc/pki/tls/misc/CA.pl -sign
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
Dies ist notwendig, damit der Webserver bei einem Neustart ohne Eingabe einer Passphrase hochfahren kann:
openssl rsa -in <encrypted-key> -out <decrypted-key> 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.
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:
<Directory /var/www/meinwebserver.de/htdocs>
...
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]
...
</Directory>
Jetzt die /etc/apache2/sites-available/www.meinwebserver.de-SSL.conf wie folgt ergänzen:
ServerName www.meinwebserver.de:443 <IfModule mod_headers.c>Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> 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.
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.