SSL Zertifikate für das eigene interne LAN

SSL Zertifikate für das eigene interne LAN

Möchte man seine Netzwerkgeräte konfigurieren, so erreicht man diese Geräte meistens unter der IP-Adresse. Mit HTTP ist das in der Regel kein Problem, aber manche Geräte und auch die Browser gehen immer mehr in die Richtung HTTPS. Also mit Verschlüsselung. Doch dann kommt eigentlich fast immer eine Fehlermeldung des Browsers. Ich wollte jetzt versuchen mit eigenen Zertifikaten auch eine HTTPS Kommunikation einfach zu ermöglichen.

Https Website Internet Security  - skylarvision / Pixabay
skylarvision / Pixabay

Folgende Fehlermeldung kommt so gut wie immer, wenn man HTTPS Seiten im LAN aufruft:

Screenshot Fehlermeldung Chrome Browser

Wenn die Geräte ein ungültiges Zertifikat haben, dann kann man hier über “Erweitert” auch weiter kommen. Hat das Gerät aber gar kein Zertifikat, so ist eine Kommunikation über HTTPS gar nicht möglich. Hier beschreibe ich nun meine ersten Versuche mit selbst erstellen und signierten Zertifikaten. Diese sind natürlich nur für mein internes Netzwerk gedacht und nicht im öffentlichen Internet zu verwenden.

Viel habe ich dazu gelesen und bin dann bei OpenSSL gelandet. Ich habe mir also OpenSSL für Windows runtergeladen und installiert.

Einfach geht dies im CMD Fenster mit:

winget install ShiningLight.OpenSSL.Dev
oder
winget install ShiningLight.OpenSSL

Über die Eingabeaufforderungen (CMD) habe ich zwei Parameter gesetzt:

set RANDFILE=c:\Temp.rnd
set OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\openssl.cfg

Danach öffne ich OpenSSL im CMD Fenster, der Ordner der jetzt geöffnet wird ist in der Regel der Ordner des Windwos Nutzers, dort werden jetzt auch die Zertifikate abgelegt, wenn man nicht in einen anderen Ordner springt.

"c:\program files\openssl-win64\bin\openssl.exe"

Zuerst wird die Root CA erstellt. Mit dem ersten Befehl erzeugen wir eine Datei mit dem Schlüssel und mit dem zweiten Befehl erzeugen wir die Zertifikatsdatei.

genrsa -out ca.key 4096
req -new -x509 -days 1826 -key ca.key -out ca-test.crt

Beim Erstellen des Zertifikats wird man aufgefordert weitere Eingaben zu machen. Hier ein Beispiel was man eintragen kann.

Screenshot CMD Fenster Ausgabe

Das Zertifikat ist jetzt 5 Jahre gültig.
Als nächstes werden die Zertifikate für die Endgeräte/Webservices erstellt. Hierbei arbeite ich mit einer Konfigurationsdatei, da weitere Parameter in der Zertifikat eingetragen werden müssen.
Als erstes wird wieder der Key für das neue Zertifikat erstellt.

genrsa -out Gerätename.key 2048

Bevor wir jetzt die CSR Datei erstellen müssen wir zuerst die Konfig Datei anpassen. Hier meine Version der openssl.cnf Datei.

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = DE
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = NRW
localityName = Locality Name (eg, city)
localityName_default = Bonn
organizationalUnitName	= Organizational Unit Name (eg, section)
organizationalUnitName_default	= IT
commonName = desktop.intern
commonName_max	= 64

[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = desktop.intern
DNS.2 = desktop
IP.1 = 10.0.1.21

In diese Datei sollten die distinguished Parameter kontrolliert und angepasst werden darüber hinaus auch die Sektion mit alt_names. Hier sollte der DNS Name des Gerätes, sowie die IP-Adresse enthalten sein.
Jetzt können wir mit folgendem Befehl die CSR Datei erstellen.

req -new -out Gerätename.csr -key Gerätename.key -config openssl.cnf

Falls es zwischendurch zu Fehlern beim erstellen kommt, einfach mal das CMD Fenster schließen und ein neues öffnen und dann wieder OpenSSL starten.
Jetzt erstellen wir das Zertifikat, die beiden oben erstellten CA Dateien müssen im gleichen Ordner sein.

x509 -req -days 730 -in Gerätename.csr -CA ca-test.crt -CAkey ca.key -set_serial 01 -out Gerätename.crt -extensions v3_req -extfile openssl.cnf

Nun haben wir das erste Zertifikat für eins unserer Geräte erstellt. Diese Datei können wir jetzt z.B. in eine Fritzbox hochladen. Die Fritzbox benötigt allerdings eine PEM Datei. Die PEM Datei kann man leicht selber erstellen. Die Datei besteht aus der CRT-Datei und der Key-Datei. Einfach den Inhalt der beiden Dateien mit dem Editor zusammen kopieren.

Damit der Computer jetzt auch das neue Zertifikat im Endgerät als vertrauenswürdig erkennt muss dies manuell installiert werden. Einfach auf die CA-Test.crt Datei mit der rechtne Maustaste klicken und es auf dem Computer (nicht Benutzer) im Ordner Vertrauenswürdige Stammzertifizierungsstellen installieren. Jetzt den PC neu starten.

Jetzt sollte beim Aufruf der HTTPS Adresse des Gerätes kein Fehler mehr erscheinen und der Browser die Verbindung als sicher erkennen.

Screenshot Chrome Browser
Like
Like Love Haha Wow Sad Angry
61

5 Replies to “SSL Zertifikate für das eigene interne LAN”

      1. Hoi andye

        Wow! Vielen Dank dafür. Wieviele Nächte habe ich in den letzten Jahren an diesem “Problem” verbracht und es nie hingekriegt.

        Dabei wäre es so einfach, wenn man weiss wie 🙂

        Cool, funktioniert einwandfrei und mit meinem Synology-NAS auf anhieb.

  1. Hi Delagdo,
    ich habe es nach der Anleitung gemacht, aber bei mir steht leider vor dem Maschinenname ein
    WMSvc-SHA2-Maschinenname
    Was könnte ich da falsch gemacht haben?
    Danke
    Marc

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.