Benutzer-Werkzeuge

Webseiten-Werkzeuge


apache2_ssl

Dies ist eine alte Version des Dokuments!


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
  1. > wurde erstellt /etc/pki/CA/newcert.pem (Öffentlich)
  2. > 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"
...
<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>

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.

apache2_ssl.1610274025.txt.gz · Zuletzt geändert: 2021/01/10 11:20 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