Direkt zum Hauptinhalt

HTTPS aktivieren mit Selbsigniertem Zertifikat

Da http Verbindungen auch im Internen LAN mitgeschnitten werden können, HTTPS einrichten.
Dazu ein reciht uns ein selbstsigniertes Zertifikat.
Hauptsache, verschlüsselt

Zertifikat anlegen, dazu erstellen wir uns ein neues Verzeichnis

mkdir -p /etc/apache2/ssl

Nun den Privaten Schlüssel erstellen

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem
Unser Beispiel mit höherer sicherheit und 100 Jhre gültigkeit
openssl req -x509 -nodes -days 36500 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem

Nun die Zertifikatsfragen beantworten.
Bei common Name habe ich checkmk.local.lan eingegeben, da eh lokal

enerating a RSA private key
............................................++++
.....................................++++
writing new private key to '/etc/apache2/ssl/apache.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:checkmk.local.lan
Email Address []:


Beschreibung zu oberen Parameters

SSL/TLS-Zertifikat Typ X.509, dient zur Authentifizierung und Verifizierung der Identität eines Hosts oder einer Website (.pem)
RSA-Key mit 2048 Bit, bietet eine sichere Verschlüsselung von Daten (Wir testen mal 4096
days gibt die Gültigkeitsdauer des Zertifikats in Tagen an (Wir enehmen 100 Jahre = 36500 Tage)
– keyout / -out, legt den Speicherpfad des neu generierten privaten Keys und des Zertifikates fest

Neues Zertifikat verlinken

ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0

Nun haben wir eine Verlinkung  des Zertifikat mit Hashnummer

ls /etc/apache2/ssl/
17691c22.0  apache.pem

rechte des Zertifikates anpassen

chmod 600 /etc/apache2/ssl/apache.pem

Überprüfen ob in den Ports die Eintrage für 443 vorhanden sind

cat /etc/apache2/ports.conf
So sollte es aussehen
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


Apache Server neu starten, a2enable ssl und neustarten des apache2

service apache2 reload
a2enmod ssl
service apache2 restart

Eine neue config datei erstellen

nano /etc/apache2/sites-available/ssl.conf

Inhalt

<virtualhost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/html
</virtualhost>

Nun die Site aktivieren und apache neustarten

a2ensite ssl.conf
service apache2 restart

Nun ist die Website per https erreichbar.
Allerings fehlt noch ein redirekt auf https wenn http eingebeben wird

Dazu die /etc/apache2/sites-enabled/000-default.conf editieren

nano /etc/apache2/sites-enabled/000-default.conf

Und folgendes hinzufügen über Serveradmin

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L]

Bildschirmfoto vom 2022-11-20 12-55-44.png

Nun speichern und apach2 neustarten

service apache2 restart