Opsi V4.2 SSL Zertifikat ersetzen

Antworten
psycho.unibas
Beiträge: 9
Registriert: 04 Jan 2021, 15:54

Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von psycho.unibas »

Hallo zusammen

Leider klappt es nicht mehr, unser frisch aktualisiertes Opsi (4.2.0.101 [python-opsi=4.2.0.197]) mit unserem eigenen SSL-Zertifikat zu versehen. In Version 4.1 hatte ich in der /etc/opsi/opsiconfd.conf folgendes stehen:

Code: Alles auswählen

ssl server key = /etc/opsi/privkey.pem
ssl server cert = /etc/opsi/fullchain.pem


Opsi 4.2 erkennt dies nicht mehr, auch nicht nach Anpassung zu:

Code: Alles auswählen

ssl-server-key = /etc/opsi/privkey.pem
ssl-server-cert = /etc/opsi/fullchain.pem
Und den Befehl

Code: Alles auswählen

opsi-setup --renew-opsiconfd-cert
kann ich auch nicht mehr ausführen, da dieser nicht mehr existiert (?):
ERROR: option --renew-opsiconfd-cert not recognized
und dies obwohl – zumindest laut Handbuch: https://download.uib.de/opsi4.2/documen ... 4.2-en.pdf – die Option noch existieren sollte.

Zudem habe ich versucht die Zertifikate unter /etc/opsi/ssl mit unseren eigenen zu erstzen, doch auch dies hat keinen Erfolg gebracht.

Kann mir da jemand weiterhelfen?

Philippe C.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1799
Registriert: 29 Mai 2008, 15:14

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von j.schneider »

Hallo,

der opsiconfd 4.2 führt bei jedem Start sogenannte Setup-Tasks durch.
Diese sorgen dafür, dass der opsiconfd eine lauffähige Umgebung bekommt.
Die Setup-Tasks können auch manuell gestartet werden:

Code: Alles auswählen

opsiconfd setup
In der Default-Konfiguration erstellen die Setup-Tasks eine "opsi CA" unter:

Code: Alles auswählen

/etc/opsi/ssl/opsi-ca-key.pem
/etc/opsi/ssl/opsi-ca-cert.pem
Über diese CA wird dann automatisch ein Private Key / Zertifikat für den opsi-Server erzeugt:

Code: Alles auswählen

/etc/opsi/ssl/opsiconfd-key.pem
/etc/opsi/ssl/opsiconfd-cert.pem
Sollten die CA oder das Zertifikat nicht existieren, auslaufen oder aus irgendeinem anderen Grund nicht passen, werden sie automatisch neu erzeugt.
Man kann die Server-Zertifikate also löschen und sie werden dann über die Setup-Tasks neu angelegt.
Der Befehl "opsi-setup --renew-opsiconfd-cert" ist somit nicht mehr erforderlich.
Wir werden die Dokumentation entsprechend korrigieren.

Über die "opsi CA" werden auch alle opsi-Depot-Server automatisch mit Zertifikaten versorgt.
Der opsiconfd kümmert sich weiterhin vollautomatisch um die Verlängerung der CA und der Zertifikate.

Daher empfehlen wir die Verwendung der "opsi CA".
Übrigens kann die CA über einen aktuellen opsi-client-agent automatisch auf die Clients verteilt werden (https://download.uib.de/opsi4.2/documen ... ver2client).

Es können jedoch auch Zertifikate einer anderen CA verwendet werden.
In diesem Fall macht es Sinn die Setup-Tasks so zu konfigurieren, dass keine Prüfung der CA / Zertifikate stattfindet.
Das erreicht man über den folgenden Eintrag in der opsiconfd.conf:

Code: Alles auswählen

skip-setup = [ssl]
Man muss sich dann jedoch selbst darum kümmern Zertifikate und CA rechtzeitig zu erneuern und zu verteilen, insbesondere wenn man den opsi-client-agent so konfiguriert, dass er die Server-Zertifikate prüft (https://download.uib.de/opsi4.2/documen ... ver2client)!

Sollten die eigenen Zertifikate nicht funktionieren, bitte ich um die entsprechenden Meldungen aus der /var/log/opsi/opsiconfd/opsiconfd.log.

Grüße
Jan Schneider
psycho.unibas
Beiträge: 9
Registriert: 04 Jan 2021, 15:54

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von psycho.unibas »

Hallo Jan,

Super, herzlichen Dank für die ausführliche Antwort: in diesem Falle werden wir dann die opsi CA verwenden (und damit keine Sorgen mehr bezüglich der Erneuerung etc. von den Zertifikaten mehr haben).

Gruss,
Philippe C.
ricky_opsifan
Beiträge: 31
Registriert: 18 Aug 2020, 15:51

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von ricky_opsifan »

Guten Tag zusammen,

ich habe bei unseren Servern eigene SSL Zertifikate abgelegt und in der /etc/opsi/opsiconfd.conf durch folgende Zeilen angepasst:

Code: Alles auswählen

ssl-server-key = /etc/opsi/ssl/certs/opsissl.key
ssl-server-cert = /etc/opsi/ssl/certs/opsissl.crt
skip-setup = [ssl]
Nach dem setzen der Rechte und dem Neustart des confd klappt das auch :)

Nur habe ich nun folgendes Problem: Nach einiger Zeit ersetzt die opsi CA einfach mein eigen hinterlegtes Zertifikat :(
Das entfernen der folgenden CA Dateien führt leider nur dazu, dass der opsiconfd nicht startet:

Code: Alles auswählen

/etc/opsi/ssl/opsi-ca-key.pem
/etc/opsi/ssl/opsi-ca-cert.pem
Durch einen Neustart des confd wird unser eigenes Zertifikat nicht einfach durch die der opsi CA ersetzt.
Es scheint mir eher so, als ob das willkürlich nach einer bestimmten Zeit ersetzt wird.
In der offiziellen Doku finde ich dazu aber leider nichts.

im Log finde ich folgenden Fehler (taucht minütlich auf):

Code: Alles auswählen

PermissionError: [Errno 1] Operation not permitted: '/etc/opsi/ssl/opsi-ca-key.pem'
[3] [2021-12-21 13:09:30.533] [               ] [Errno 1] Operation not permitted: '/etc/opsi/ssl/opsi-ca-key.pem'   (manager.py:139)
Traceback (most recent call last):
  File "opsiconfd/manager.py", line 135, in async_main
  File "opsiconfd/manager.py", line 104, in check_server_cert
  File "opsiconfd/ssl.py", line 374, in setup_server_cert
  File "opsiconfd/ssl.py", line 166, in store_local_server_key
  File "opsiconfd/ssl.py", line 96, in store_key
  File "opsiconfd/ssl.py", line 84, in setup_ssl_file_permissions
  File "OPSI/Util/Task/Rights.py", line 235, in set_rights
  File "OPSI/Util/Task/Rights.py", line 82, in apply
  File "OPSI/Util/Task/Rights.py", line 77, in chown
Kann ich irgendwie verhindern, dass die opsi CA das hinterlegte Zertifikat ersetzt?
Ist der Dateiort /etc/opsi/ssl/certs/ für das eigene Zertifikat vielleicht ungünstig gewählt?
Benutzeravatar
ThomasT
uib-Team
Beiträge: 538
Registriert: 26 Jun 2013, 12:26

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von ThomasT »

Ich würde es mal mit

Code: Alles auswählen

skip-setup = [ssl]
in der opsiconfd.conf ausprobieren.
Kein Support per DM!
_________________________
opsi support - https://www.uib.de/
For productive opsi installations we recommend support contracts.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 1799
Registriert: 29 Mai 2008, 15:14

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von j.schneider »

Aus oben genannten Gründen rate ich weiterhin von der Verwendung eigener Zertifikate ab.
Dennoch sollten eigene Zertifikate grundsätzlich funktionieren.
In diesem Fall würde ich in der opsiconfd außer

Code: Alles auswählen

skip-setup = [ssl]
nichts weiter ändern.
Man kann weiterhin die Standardpfade

Code: Alles auswählen

ssl-server-key = /etc/opsi/ssl/opsiconfd-key.pem
ssl-server-cert = /etc/opsi/ssl/opsiconfd-cert.pem
verwenden und das eigenen Zertifikat / Key hier ablegen.

Während der opsiconfd läuft, prüft er in regelmäßigen Abständen, ob die Zertifikate erneuert werden müssen.
Es gab mal einen Bug, dass das trotz skip-setup = [ssl] durchgeführt wurde.
Das könnte hier der Fall sein.
Das Problem wurde in Version 4.2.0.215 behoben.

Bitte auch beachten, dass der ssl-server-key mit der ssl-server-key-passphrase verschlüsselt bzw. entschlüsselt wird.
ricky_opsifan
Beiträge: 31
Registriert: 18 Aug 2020, 15:51

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von ricky_opsifan »

Hi j.schneider und Thomas,

der Hintergrund warum wir ein selfsigned Zertifikat verwenden ist, dass wir webDAV verwenden wollen für unser opsi WAN Depot, welches wir im Internet routen möchten. Aus Sicherheitsgründen wollen wir nicht, dass alle unsere Rechner der opsi CA vertrauen.

Also

Code: Alles auswählen

skip-setup = [ssl]
hatte ich auf jeden Fall schon drin... Ich versuche Mal die von Ihnen genannten Standardpfade und Dateinamen (auch .pem anstelle von .key) zu belassen für meinen selfsigned Zertifikat, also:

Code: Alles auswählen

ssl-server-key = /etc/opsi/ssl/opsiconfd-key.pem
ssl-server-cert = /etc/opsi/ssl/opsiconfd-cert.pem
Bitte auch beachten, dass der ssl-server-key mit der ssl-server-key-passphrase verschlüsselt bzw. entschlüsselt wird.
Ich bin mir nicht genau sicher, ob ich das richtig verstehe... Also ich habe den Key von der Passphrase befreit mit dem folgenden Befehl:

Code: Alles auswählen

openssl rsa -in opsissl.key -out opsissl.key
Ansonsten konnte der confd gar nicht erst gestartet werden.

meine opsiconfd Version ist opsiconfd 4.2.0.204-1, vielleicht liegt es auch daran... ich upgrade es auch mal

Vielen Dank für die Antwort!

LG

Ricky
ricky_opsifan
Beiträge: 31
Registriert: 18 Aug 2020, 15:51

Re: Opsi V4.2 SSL Zertifikat ersetzen

Beitrag von ricky_opsifan »

Wollte kurz Rückmeldung geben, dass nun alles klappt und mein Selfsigned Zertifikat nicht mehr ersetzt wird :D

Vielen Dank für die Hilfe!
Antworten