Extensions für SSL Zertifikaterstellung steuern

Hallo zusammen,

ich beschäftige mich aktuell an einem Versuchsaufbau mit UCS 4.0 um Möglichkeiten eines Umstiegs von Windows AD auf UCS zu untersuchen.
Bei der Konfiguration der CA auf dem UCS komme ich allerdings nicht weiter. Aus der Windows Welt kommend versuche ich derzeit vergeblich Extensions für die vom der CA ausgestellten SSL Zertifikate zu konfigurieren.

Wie und wo um alles in der Welt ergibt sich bei UCS die Möglichkeit in allen von der CA Ausgestellten Zertifikaten standardmäßig die Informationen über die öffentliche Adresse der Sperrliste (crlDistributionPoint) sowie der öffentlichen Adresse des Root-Zertifikats anzugeben ? Bei Windows werden diese Information in der CA selbst hinterlegt und dann beim Abruf entsprechender Zertifikate über deren Vorlagen integriert.

Ich bin für jede Hilfe dankbar.

Viele Grüße !

Hallo,

das Script /usr/share/univention-ssl/make-certificates.sh erstellt für die root-CA und für Host-Zertifikate die openssl Konfigurationsdateien (“find /etc/univention/ssl/ -name openssl.cnf”) in denen Sie die extensions vermutlich definieren müssen, z.B:[ extensions_section ] crlDistributionPoints=URI:https://$(hostname -f)/ucsCA.crl
Ich vermute dass es in Ihrem Fall notwendig ist die Vorlage in dem Script manuell anzupassen und die gewünschten Zertifikate anschließend neu zu generieren und zu verteilen. Dabei helfen sicherlich die beiden SDB-Artikel Renewing the complete SSL certificate chain und Renewing the SSL certificates weiter. Allerdings wird das im ersten Artikel erwähnte “apt-get install --reinstall univention-ssl” natürlich dazu führen dass das Original /usr/share/univention-ssl/make-certificates.sh wieder hergestellt wird und Ihre Anpassungen damit rückgängig gemacht werden.

Ich gebe die Punkte (und die damit aktuell verbundenen Schwierigkeiten) gerne ein mal an die Kollegen aus der Entwicklung weiter damit der Ableuf zu einer kommenden UCS Version geprüft/überarbeitet werden kann.

Mit freundlichen Grüßen
Janis Meybohm

Hallo Herr Meybohm,

danke für die prompte Antwort zu meinem Problem.
Ihren Vorschlag hatte ich ebenfalls bereits als Lösung im Kopf, allerdings ist es, wie sie bereits geschrieben haben so, dass dann die Änderungen bei einem Update der SSL Komponente ggf. wieder überschrieben werden.

Mein Ansatz wäre der folgende:
Über die UCS Registry findet sich unter “Zertifizierungsstelle” eine Variable (ssl/host/extensions) zur Konfiguration eines zusätzlichen Skripts. Als Hilfe wird ein Beispielskript hier angegeben: “/usr/share/doc/univention-ssl/extensions-example.sh”
Im Skript wird z.B. die Extension “subjectAltName” beispielhaft konfiguriert. Allerdings finde ich zur weiteren Konfiguration dieses Skripts keinerlei Dokumentation um dieses an meine Bedürfnisse anzupassen. Zusätzlich war, sobald ich dieses Beispielskript verwendet hatte nach einer Erneuerung der UCS Zertifikate kein Webzugriff auf die UCS Verwaltung mehr möglich.

Aus meinem Verständnis heraus sollte der Ablauf so sein:
Ich konfiguriere 2 eigene UCS Variablen in der Registry, sagen wir “ssl/crlDistributionPoints” mit dem Wert “CA.Domain” und eine Variable “ssl/host/subjectAltName” mit dem Wert “Andere.Domain, Weitere.Domain”. Dann erstelle ich mir ein Skript nach dem Vorbild von “extensions-example.sh” und greife dort auf die von mir erstellten Registry Variablen zu. Unter der Variable “ssl/host/extensions” verweise ich dann auf mein Skript: “/usr/share/univention-ssl/extensions.sh”

Ist das so der richtige Weg ? Bzw. gibt es dazu eine Anleitung, denn in Internet und in der UCS Dokumentation findet sich hierzu leider nur wenig.

Des Weiteren löst der Ablauf nur eines meiner Probleme. Denn was mache ich nun wenn ich Zertifikate nicht nur für die CA sondern für andere Hosts mit anderen “subjectAltName” Werten austellen möchte ? Nehmen wir an, ich habe einen UCS Domain Master mit CA und einen UCS DC Backup mit einem Webserver. In der CA wurde alles wie oben beschrieben konfiguriert und die CA inkludiert den richtigen crlDistributionPoint.
Kann ich in der UCS Registry des UCS DC Backupservers dann einen anderen Wert für meine Variable “subjectAltName” definieren ? Denn das wird sicher nicht der Gleiche sein wie der, welcher in der CA konfiguriert wurde.

Ich freue mich auf ihre Antwort.

Ludwig

Hallo,

“ssl/host/extensions” wird nur für Host-Zertifikate angewendet, also nicht für die root-CA.
Wenn das für Sie ausreichend ist, können Sie in der Variable den Pfad zu einem Script angeben in dem Sie die Funktion “createHostExtensionsFile” definiert haben. Als Parameter erhält “createHostExtensionsFile” den FQDN des Rechners, zurückgeben muss die Funktion den Dateinamen für eine Datei mit der Definition der Erweiterungen. Diese Datei wird dann bei der Generierung der Zertifikate mit der openssl Option “-extfile” verwendet.

Da alle Zertifikate immer auf dem DC-Master generiert werden, könnten Sie z.B. das folgende “extensions”-Script definieren:

createHostExtensionsFile () {
        echo "/etc/univention/ssl/${1}.ext"
}

Für jeden Host können Sie dann die gewünschten Extensions direkt in eine Datei ("/etc/univention/ssl/.ext") schreiben, z.B.:

extensions = myx509v3
[ myx509v3 ]

# ucs defaults
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always

# alternative name
subjectAltName = DNS:fqdn.des.hosts, DNS:fqdn, DNS:www

crlDistributionPoints=URI:https://DCMASTER.IHRER.DOMÄME/ucsCA.crl

Mit freundlichen Grüßen
Janis Meybohm

Hallo Herr Meybohm,

das ist die Informationen welche ich gesucht hatte. Es ging mir nur um Extensions für die Host-Zertifikate. Aus meiner Sicht wäre es sinnvoll diese Information in die Offizielle UCS Dokumentation im Abschnitt SSL Zertifikate mit aufzunehmen.
Ist hier für die Zukunft eine Erweiterung der UCS Weboberfläche geplant um z.B. die Host-Speziefischen Änderungen dort abzufragen und die jeweilige Extensions Datei erzeugen zu lassen bevor das Zertifikat abgerufen wird ?

In jedem Fall vielen Dank für ihre Hilfe. Ich werde die Einstellungen dann sofort testen, sobal ich mein EFI Installationsproblem unter Hyper V gelöst habe, auf das ich hier gestoßen bin: [url]UCS 4.0 UEFI Installation bleibt unter Hyper V Gen2 stehen]

Viele Grüße

Hallo,

schön dass ich helfen konnte!

[quote=“lw3234”]Aus meiner Sicht wäre es sinnvoll diese Information in die Offizielle UCS Dokumentation im Abschnitt SSL Zertifikate mit aufzunehmen.[/quote]Da stimme ich Ihnen zu und gebe das natürlich auch entsprechend weiter. Ich glaube aber nicht dass die Umsetzung wie ich sie hier vorgeschlagen habe im Produkt genauso abgebildet wird. Evtl. wird es in kommenden UCS Versionen aber andere, bessere Möglichkeiten des Zertifikatsmanagement geben.

Mit freundlichen Grüßen
Janis Meybohm

Mastodon