Eigenes Root-Zertifikat einspielen

german
certificates

#1

Hallo,

habe eine Verständnisfrage: Ist es möglich, das UCS nicht mit seiner eigenen CA zu betreiben sondern mit einer anderen, bestehenden CA?

Wenn ja, wie muss ich da vorgehen?

LG
Roland


#2

@ROGA,

ja, es ist möglich, ein eigenes Zertifikat für UCS zu verwenden. Ich hoffe, das hilft dir weiter:

https://help.univention.com/t/using-your-own-ssl-certificates/38

Gruß, Nico.


#3

Hallo Nico,

Vielen Dank für den Hinweis.

Über diesen Beitrag bin ich zwar auch schon etliche Male gestolpert, wusste aber nicht, ihn richtig anzuwenden. Ich wollte immer irgendwie mein eigenes Root-Zertifikat noch ins UCS einspielen, aber das ist ja gar nicht nötig :slight_smile: Für den Apache einfach nur das eigene Server-Zertifikat und den dazugehörigen Private.Key in das System importieren, so wie es in der Anleitung ja auch steht. Und siehe da, es hat funktioniert :slight_smile:

Nochmals vielen Dank, das du mir die Augen geöffnet hast.

LG
Roland


#4

Hallo Nico,

leider habe ich festgestellt, das dies doch noch nicht die ganze Lösung ist.

Nach dem ich mein eignes Zertifikat eingebaut hatte, bin ich auf die Idee gekommen, eine System-Fehlerdiagnose auszuführen. Das hier war das Ergebnis:

Nach längeren Recherchen im Internet habe ich erfahren, dass man das Root-CA-Zertifikat, welches das neue Zertifikat von Apache signiert hat, einfach in die Zertifikats-Datei hineinkopieren soll. Das Zertifikat hat dann drei Informationen in derselben Datei:

  1. die Detailsinformationen über das Server-Zertifikat
  2. das Zertifikat der Root-CA, die das Zertifikat signiert hat
  3. das Server-Zertifikat selbst

Nach dem ich das getan hatte, war die Fehlermeldung nach einem erneuten Test weg. Ich dachte, Wow, war ja super einfach! Einige Zeit später, nach einem Neustart des UCS bemerkte ich allerdings, dass ich nicht mehr via Web-Interface auf das UCS zugreifen konnte. Per SSH habe ich die Logs des Apache überprüft. Dieser meckerte jetzt, dass ihm das Zertifikat und der Key nicht passt:

Certificate and private key server.domain.com:443:0 from /etc/.myssl/server.domain.com.pem.cer and /etc/.myssl/server.domain.com.pem.key do not match

Entferne ich das Root-CA Zertifikat aus dem Server-Zertifikat und starte den Apache wieder neu, funktioniert alles wieder wie gehabt. Nur bei der System-Diagnose bei der Überprüfung der Gültigkeit der SSL Zertifikate habe ich wieder denselben Fehler.

Jetzt bin ich ziemlich “confused”, weil ich nicht mehr weiter weiss. Kannst du mir ev. noch einen Hinweis geben, bzw. sagen, was ich wohl falsch gemacht habe?

LG
Roland


#5

Moin,

das Modul verwendet unter der Haube auch nichts weiter als Aufrufe von openssl verify /pfad/zum/Zertifikat.pem. Wenn man das weiß, dann kann man daraus auch ableiten, was man da tun kann: man muss openssl nur das eigene Root-CA als vertrauenswürdiges Zertifikat bekannt geben.

Das geht unter Debian (und damit unter Univention) wie folgt:

  1. Root-CA-Zertifikat unter /usr/local/share/ca-certificates ablegen; Dateiname muss mit .crt enden, nicht mit .pem.
  2. Befehl update-ca-certificates als root ausführen.

Anschließend sollten in /etc/ssl/certs symbolische Links existieren, die zu deiner Datei in /usr/local/share/ca-certificates führen; einmal für den Dateinamen selber (hier dann automatisch mit .pem als Endung, übrigens), und einmal oder mehrfach für den Hash des Zertifikats. Beispiel von meiner Installation:

[0 root@master ~] ls /usr/local/share/ca-certificates/
UCS.bs.linet-services.de.crt  ucsCA.crt@
[0 root@master ~] ls -l /etc/ssl/certs | grep linet
lrwxrwxrwx 1 root root     28 Jan 11 11:11 2791bc03.0 -> UCS.bs.linet-services.de.pem
lrwxrwxrwx 1 root root     28 Jan 11 11:11 da7b1952.0 -> UCS.bs.linet-services.de.pem
lrwxrwxrwx 1 root root     61 Jan 11 11:11 UCS.bs.linet-services.de.pem -> /usr/local/share/ca-certificates/UCS.bs.linet-services.de.crt

Nun sollte auch das hier funktionieren: openssl verify /pfad/zum/Zertifikat.pem.

Ich hab das allerdings nicht wirklich mit dem System-Check-Modul ausprobiert, weil ich momentan keine Testmaschine habe, auf der ich das Root-CA ersetzen könnte oder wollen würde.

Gruß
mosu


Neuinstallation Nextcloud - Script im Status "Pending" - EXITCODE=0
#6

Hallo Mosu,

Vielen dank für deine ausfrührliche Anleitung. Ich habe es genau so gemacht, wie du es beschrieben hast und es hat perfekt funktioniert! SUPPER!

Wünsch dir noch einen schönen Tag.

Gruss
Roland


#7

Ja cool, und gern geschehen :slight_smile: