Zuletzt geändert von Tobias Wintrich am 2022/11/28 11:29

Von Version 11.1
bearbeitet von Tobias Wintrich
am 2022/11/28 11:29
Änderungskommentar: Neuen Anhang image-20221128112923-1.png hochladen
Auf Version 4.3
bearbeitet von tobias
am 2021/09/17 13:36
Änderungskommentar: Update document after refactoring.

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Allgemein - Kommbox- bzw. TCMS Webserver Zertifikat austauschen
1 +Kommbox- bzw. TCMS Webserver Zertifikat austauschen
Übergeordnete Seite
... ... @@ -1,1 +1,1 @@
1 -HowTos.WebHome
1 +WebHome
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.twintrich
1 +XWiki.tobias
Tags
... ... @@ -1,1 +1,0 @@
1 -RangeeOS|Thin Client|TCMS|Sicherheit
Inhalt
... ... @@ -1,92 +1,80 @@
1 -Das auf einem RangeeOS (mit oder ohne TCMS) verwendete Webserver Zertifikat kann bei Bedarf ausgetauscht werden. Hierzu gibt es grundsätzlich 2 Möglichkeiten:
1 +1. (((
2 +Zertifikat vorbereiten1. (((
3 +Wenn kein Zertifikat vorhanden ist, muss ein neues Webserverzertifikat mit dem richtigen Hostname ausgestellt werden. Sollten Sie bereits ein Zertifikat haben, fahren Sie bitte mit Schritt (b) fort.
4 +1. Zertifikatsanforderungsdatei erstellen (<FQDN> und <ORGANISATIONS_EINHEIT> sollten hierbei durch Ihre Daten ergänzt werden):(((
5 +(% class="auto-cursor-target" %)
6 +\\
2 2  
3 -1. Es kann auf dem Client eine Zertifikatsanforderungsdatei verwendet und extern signiert werden
4 -1. Es kann ein vollständig extern generiertes Zertifikat verwendet werden
8 +{{code language="bash" linenumbers="true"}}
9 + openssl req -new -sha1 -newkey rsa:2048 -subj '/CN=<FQDN>/O=<ORGANISATIONS_EINHEIT>' -nodes -keyout mykey.pem -out myreq.pem
10 +{{/code}}
5 5  
6 -In beiden Fällen muss das Zertifikat anschließend in die Passende Form (Base64-codierte) gebracht werden.
12 +(% class="auto-cursor-target" %)
13 +\\
14 +)))
15 +1. (((
16 +myreq.pem mit einem Texteditor öffnen und Inhalt bei einer Zertifizierungsstelle Einreichen.
17 +)))
18 +)))
19 +1. (((
20 +(% class="auto-cursor-target" %)
21 +Zertifikat und Schlüssel müssen im PEM Format ([[https:~~/~~/serverfault.com/a/9717>>url:https://serverfault.com/a/9717||shape="rect"]]) vorliegen. Über z.B. Firefox ist es möglich ein Zertifikat im PEM Format zu exportieren. CRT Dateien sind meistens bereits im PEM Format. Man erkennt das PEM Format am Header und Footer:
7 7  
8 -{{info}}
9 -Die in dieser Anleitung verwendeten "openssl" Befehle können generell auf jedem PC mit installiertem openssl ausgeführt werden. Sie können, müssen aber nicht auf Thin Client Seite ausgeführt werden. Wenn Sie die Befehle direkt auf dem RangeeOS ausführen möchten, benötigen Sie entsprechenden Root Zugriff und Tools für den Dateitransfer zum und vom Thin Client.
10 -
11 -* [[Root-Terminal-Passwort>>doc:Handbuecher.Handbuch11.Kapitel 3 - Administration des Clients.3\.C Benutzereinstellungen.3\.C\.A\. Root-Terminal-Passwort]] | Es wird empfohlen zur potentiellen Fehlerbehandlung ein eigenes, feste Passwort für den Benutzer zu setzen
12 -* Z.B.: [[WinSCP >>https://winscp.net/eng/download.php]]für den Dateitransfer von Windows zu RangeeOS
13 -
14 -In dieser Anleitung werden die Schritte für ein direktes Ausführen der Befehle auf RangeeOS Seite beschrieben.
15 -{{/info}}
16 -
17 -= Zertifikatsanforderungsdatei erstellen =
18 -
19 -1. Melden Sie sich als Benutzer "[[admin>>doc:Handbuecher.Handbuch11.Kapitel 3 - Administration des Clients.3\.C Benutzereinstellungen.3\.C\.A\. Root-Terminal-Passwort]]" am Client über ein Terminal ({{status title="STRG"/}} + {{status title="SHIFT"/}} + {{status title="ALT"/}} + {{status title="T"/}}) oder eine SSH Verbindung am RangeeOS an
20 -1. Passen Sie die Parameter des folgendes Befehls nach Ihren Anforderungen an und führen Sie Ihn auf dem Gerät aus:{{code language="bash"}}openssl req -newkey rsa:4096 -sha256 -keyout key.pem -out req.pem \
21 --subj "/C=DE/ST=Bundesland/L=Stadt/O=Einrichtung/OU=Abteilung/OU=Team/CN=<FQDN>" \
22 --addext "subjectAltName = DNS:<DNS>,IP:<IP>"{{/code}}
23 -1*. **C/ST/L/O/OU**
24 -Optional und Frei wählbar
25 -1*. **<FQDN>**:
26 -der Hostname unter dem das RangeeOS später angesprochen werden soll
27 -1*. **<DNS>:**
28 -Hostname des TCMS für die das Zertifikat gültig sein soll.
29 -1*. **<IP>:**
30 -Optional. IP des TCMS für die das Zertifikat gültig sein soll. Wenn die IP nicht Teil des Zertifikats sein soll entfernen Sie den entsprechenden Bereich
31 -1*. Beispiel eines vollständigen Befehls:
32 -{{code language="bash"}}openssl req -newkey rsa:4096 -sha256 -keyout key.pem -out req.pem \
33 --subj "/C=DE/ST=NRW/L=Aachen/O=Rangee/OU=Support/OU=Zertifikatstest/CN=tc-b0416f05c363.rangee.local" \
34 --addext "subjectAltName = DNS:tc-b0416f05c363.rangee.local,IP:192.168.50.29"{{/code}}
35 -1. Vergeben Sie nach Absenden des Befehls ein Kennwort für Ihren Private Key (min. 4 Zeichen)
36 -1. Da der Private Key für das Serverzertifikat ohne Passwort benötigt wird, müssen Sie das Passwort anschließend mit diesem Befehl entfernen:
37 -{{code language="bash"}}openssl rsa -in key.pem -out key.pem{{/code}}
38 -1. Verbinden Sie sich mit "WinSCP" und den "admin" Zugangsdaten zum Client und laden Sie die Anforderungsdatei "///tmp/req.pem//" und "///tmp/key.pem//" herunter.
39 -1. Reichen Sie die Datei req.pem bei einer beliebigen Zertifizierungsstelle ein. Wenn Sie die Option haben, lassen Sie sich hier direkt ein Base64 codiertes Zertifikat erstellen. Sobald Sie das Zertifikat haben, fahren Sie mit dem nächsten Schritt fort.
40 -
41 -= Importieren eines Zertifikats =
42 -
43 -Zum importieren des Zertifikats müssen Ihnen sowohl der Private Key und das Ausgestellte Serverzertifikat Base64 codiert vorliegen:
44 -
45 -* Falls Sie beides in Form einer kombinierten PFX-Datei haben, müssen Sie die beiden Komponenten zunächst trennen. Hierzu können Sie z.B.: folgende Befehle verwenden:
46 -{{code language="bash"}}sudo openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes # Exportiert den Private Key
47 -sudo openssl pkcs12 -in certname.pfx -nokeys -out cert.pem # Exportiert das Zertifikat
48 -openssl rsa -in key.pem -out key.pem # entfernt das Passwort vom Private Key{{/code}}
49 -* Prüfen Sie ob Ihr Zertifikat im Bas64 Format vorliegt. Öffnen Sie es hierzu mit einem beliebigen Text Editor. Das Zertifikat sollte in dieser Form vorliegen:
50 -{{code language="bash"}}-----BEGIN CERTIFICATE-----
23 +{{code language="bash" linenumbers="true"}}
24 +-----BEGIN RSA PRIVATE KEY-----
51 51  […]
52 ------END CERTIFICATE-----{{/code}}
53 -Insofern das Zertifikat nicht entsprechend codiert ist, können Sie es über diesen Befehl konvertieren:
54 -{{code language="bash"}}openssl x509 -inform der -in certname.cer -out certname.pem{{/code}}
55 -
56 -Lieg Ihnen das Zertifikat und der Private Key in passender Form vor, schreiben Sie den Inhalt beider Zertifikate untereinander in eine Datei "Server.pem" und speichern Sie sie ab:
57 -{{code language="bash"}}-----BEGIN RSA PRIVATE KEY-----
58 -[…]
59 59  -----END RSA PRIVATE KEY-----
60 60  -----BEGIN CERTIFICATE-----
61 61  […]
62 ------END CERTIFICATE-----{{/code}}
29 +-----END CERTIFICATE-----
30 +{{/code}}
63 63  
64 -= Zertifikat hochladen =
32 +(% class="auto-cursor-target" %)
33 +\\
34 +)))
35 +1. Bitte hängen Sie den Inhalt der Schlüsseldatei (z.B. mykey.pem) unten an die Zertifikatsdatei (z.B. mycert.pem) an.
36 +)))
37 +1. (((
38 +Zertifikat auf ThinClient installieren1. Per WinSCP wird die kombinierte PEM Datei auf dem ThinClient zunächst unter /tmp/server.pem abgelegt. Dazu kann der admin User {{status title="Kommbox"/}} → {{status title="Benutzer-Konifguration"/}} → {{status title="ROOT-TERMINAL-PASSWORT"/}} genutzt werden.
39 +1. (((
40 +Nun verbindet man sich per SSH mit dem admin User auf den ThinClient/TCMS und holt sich Superuser (root) Rechte
65 65  
66 -Das fertige Zertifikat können Sie über die Kommbox unter {{status title="Remote-Administration"/}} -> "Gerätezertifikat hochladen" hochladen. Anschließend ist ein Neustart des RangeeOS notwendig.
42 +{{code language="bash" linenumbers="true"}}
43 +sudo -i
44 +{{/code}}
67 67  
68 -Nach dem Neustart wird Ihnen im Browser das Zertifikat als gültig angezeigt.
46 +(% class="auto-cursor-target" %)
47 +\\
48 +)))
49 +1. (((
50 +(% class="auto-cursor-target" %)
51 +Die Dateiberechtigungen werden wie folgt gesetzt:
69 69  
70 -= Fehlerbehandlung =
53 +{{code language="bash" linenumbers="true"}}
54 +chown root:root /tmp/server.pem
55 +chmod 0600 /tmp/server.pem
56 +{{/code}}
71 71  
72 -Wurde das Zertifikat erfolgreich importiert und die Kommbox startet anschließend nicht mehr, können Sie sich über das Terminal / SSH ein neues selbstsigniertes Zertifikat erstellen lassen.
58 +(% class="auto-cursor-target" %)
59 +\\
60 +)))
61 +1. Die pem an die richtige Stelle kopieren:(((
62 +(% class="auto-cursor-target" %)
63 +**Firmware 10.00 / 10.01**
73 73  
74 -== Fehlermeldung auslesen ==
75 -
76 -Melden Sie sich auf dem Client an und führen Sie diesen Befehl aus:
77 -
78 -{{code language="bash"}}
79 -sudo /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
65 +{{code language="bash" linenumbers="true"}}
66 +cp /tmp/server.pem /mnt/config.local/server.pem
80 80  {{/code}}
81 81  
82 -Notieren Sie sich die Ausgabe und senden Sie uns an unseren Support
69 +(% class="auto-cursor-target" %)
70 +**Firmware 11.00**
83 83  
84 -== Zertifikat neu generieren ==
85 -
86 -Führen Sie zum neu generieren diesen Befehl aus:
87 -
88 -{{code language="bash"}}
89 -sudo rangee system:certificate:generate -f
72 +{{code language="bash" linenumbers="true"}}
73 +cp /tmp/server.pem /mnt/config/server.pem
90 90  {{/code}}
91 91  
92 -Nach einem erneuten Neustart ist die Kommbox wieder erreichbar.
76 +(% class="auto-cursor-target" %)
77 +\\
78 +)))
79 +)))
80 +1. Thin Client neustarten
image-20221128112923-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.twintrich
Größe
... ... @@ -1,1 +1,0 @@
1 -88.0 KB
Inhalt
zert01.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.twintrich
Größe
... ... @@ -1,1 +1,0 @@
1 -90.9 KB
Inhalt