Benutzer-Werkzeuge

Webseiten-Werkzeuge


apache2_ssl

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
apache2_ssl [2021/01/10 00:01] – angelegt mhoapache2_ssl [2021/01/10 11:39] (aktuell) mho
Zeile 1: Zeile 1:
 ===== Apache2 SSL einrichten ===== ===== 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:
 +<code>
 + vi /etc/pki/tls/misc/CA.pl
 + Überprüfen der Variable CATOP in CA.pl: $CATOP="/etc/pki/CA";
 +</code>
 +
 +==== CA (certification authority) erstellen ====
 +Erstellt ein Rootzertifikat, fall noch nicht vorhanden
 +<code>
 +-> Mit Passfphrase
 +   /etc/pki/tls/misc/CA.pl -newca
 +
 +-> wurde erstellt /etc/pki/CA/cacert.pem (Öffentlich) 
 +   /etc/pki/CA/private/cakey.pem (Privat)
 +</code>
 +
 +==== Zertifikatsanfrage erstellen ====
 +<code>
 +  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
 +</code>
 +==== 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 <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.
 +
 +
 +==== 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:
 +<code>
 +<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>
 +</code>
 +
 +Jetzt die /etc/apache2/sites-available/www.meinwebserver.de-SSL.conf wie folgt ergänzen:
 +<code>
 +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"
 +...
 +</code>
 +
 +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
 +<code>
 +# 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
 +
 +</code>
 +
 +**Jetzt ist die Webseite nur noch per https://www.fritz.box erreichbar. Zugriffe aus http://www.fritz.box werden automatisch umgeleitet.**
 +
 +
 +
 +
 +
 +
apache2_ssl.1610233310.txt.gz · Zuletzt geändert: 2021/01/10 00:01 von mho

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki