Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
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.fritz.box zur Apache2-Konfiguration ablegen
mv /etc/pki/CA/newcert.pem /etc/pki/CA/certs/fritz-box-cert.pem mv /etc/pki/CA/newkey.pem /etc/pki/CA/private/fritz-box-key.pem
Passphrase entfernen
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/fritz-box-key.pem -out <decrypted-key-decrypted>
Die Datei /etc/pki/CA/cacert.pem sollte den Clients zum Import bereitgestellt werden.
Konfiguration des Apache2 mit den SSL-Key
Die Konfigurationsdatei des Webservers, z. B. www.fritz.box bearbeiten:
cd /etc/apache2/apache2/conf oder /etc/apache2/apache2.conf
Folgende Modul sollte aktiviert werden:
a2enmod ssl
a2enmod ssl
/etc/apache2/sites-available/www.fritzbox.conf bearbeiten und wie folgt ändern/ergänzen:
ServerName www.fritz.box:443 <IfModule mod_headers.c>Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> SSLCertificateFile "/etc/pki/CA/certs/fritz-box-cert.pem" SSLCertificateKeyFile "/etc/pki/CA/private/fritz-box-decrypt-key.pem" SSLCACertificateFile "/etc/pki/CA/cacert.pem"
Apache2 neue starten:
systemctl restart apache2
Jetzt ist die Webseite nur noch per https://www.fritz.box erreichbar.
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.