Probleme mit Intermediate-CA nach Upgrade auf 4.3

Antworten
AndreasWa
Beiträge: 3
Registriert: 24 Jan 2024, 10:59

Probleme mit Intermediate-CA nach Upgrade auf 4.3

Beitrag von AndreasWa »

Hallo,

wir betreiben auf unserern OPSI-Servern eine eigene Intermediate-CA. Nachdem Upgrade auf 4.3 laufen unserer Zertifikate soweit eigentlich, HTTPS-Aufrufe im Browser auf Admin-Webseite und WebGUI-Konsole bringen keine Zertifikatsfehler - Zertifikate sind gültig.

Wenn wir ein Upgrade der OPSI-Pakete mit

Code: Alles auswählen

opsi-package-updater -v update
ausführen erhalten wir folgende Fehlermeldung

Code: Alles auswählen

 SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get issuer certificate (_ssl.c:1006)')) 
Eine Überprüfung mittels curl und openSSL hingehgen lieferte keine Fehlermeldung.


In der /etc/opsi/opsiconfd.conf haben wir den Wert ssl-ca-subject-cn anpassen müssen, da der CN von unserem Zertifikat nicht gleich dem Hostname ist.

Wir haben leider keinen Anhaltspunkt mehr wo es dran liegen könnte.

Vielen Dank und LG
tensinge
Beiträge: 1
Registriert: 06 Aug 2024, 14:23

Re: Probleme mit Intermediate-CA nach Upgrade auf 4.3

Beitrag von tensinge »

Moin moin allerseits,

wir konnten das Problem zwischenzeitlich beheben.

Das Problem ist, dass wenn die Intermediate CA gemäß der Anleitung eingerichtet wird, /etc/opsi/ssl/opsi-ca-cert.pem nur den Public Key der Intermediate CA enthält. Wenn dann Anfragen an den Server über HTTPS gestellt werden, verifiziert opsi die erhaltenen Zertifikate. Allerdings nutzt opsi nur die Datei opsi-ca-cert.pem als Trust Store (opsi-packag-updater -l 9 list --packages):

Code: Alles auswählen

ca_cert_file: '/etc/opsi/ssl/opsi-ca-cert.pem', exists: True, verify_flags: [<ServiceVerificationFlags.STRICT_CHECK: 'strict_check'>], session.verify: '/etc/opsi/ssl/opsi-ca-cert.pem', verify: '/etc/opsi/ssl/opsi-ca-cert.pem'   (opsiservice.py:739)
Allerdings fehlt dort dann das Zertifikat des Issuers der Intermediate CA, da diese (gemäß Anleitung) nur im Systemzertifikatsspeicher abgelegt wurde. Nachdem zusätzlich der Public Key der Root-CA zu /etc/opsi/ssl/opsi-ca-cert.pem hinzugefügt wurde, funktionieren die Anfragen nun.

Hier müsste also entweder die Dokumentation angepasst werden, dass entsprechend ein kombiniertes Zertifikat aus Public Key von Root und Intermediate CA unter /etc/ssl/opsi/opsi-ca-cert.pem abgelegt werden muss oder ggf. kann opsiservice.py erweitert werden, sodass auf den Systemzertifikatsspeicher zurückgegriffen wird, wenn opsi als Intermediate CA betrieben wird. Eine entsprechende Änderung in python-opsi-common/opsicommon/client/opsiservice.py könnte ungefähr so aussehen:

Code: Alles auswählen

else:
		if ca_bundle: # ca_bundle set via REQUESTS_CA_BUNDLE environment variable
			self._session.verify = ca_bundle
		elif self._ssl_trusted_certs: # ssl-trusted-certs from opsiconfd.conf
			self._session.verify = self._ssl_trusted_certs
		elif self._ca_cert_file:
Also entsprechend die bereits abgefragte Umgebungsvariable REQUESTS_CA_BUNDLE nutzen, wenn gesetzt und dann die ssl-trusted-certs Einstellung.
Antworten