Bug 24187 - konfigurierbare Zertifikats-Erweiterungen an Rechner Zertifikaten
konfigurierbare Zertifikats-Erweiterungen an Rechner Zertifikaten
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: SSL
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0 - RC
Assigned To: Felix Botner
Janek Walkenhorst
:
Depends on:
Blocks: 37422
  Show dependency treegraph
 
Reported: 2011-10-25 14:31 CEST by Felix Botner
Modified: 2015-01-02 08:47 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Botner univentionstaff 2011-10-25 14:31:25 CEST
Damit könnte man z.B. neben dem FQDN auch den Hostnamen im Zertifikat speichern,

extensions = myx509v3
[ myx509v3 ]

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

# alternative name
subjectAltName = DNS:$fqdn, DNS:$hostname

um Rechner per https wahlweise mit dem FQDN oder dem Hostnamen anzusprechen.
Comment 1 Felix Botner univentionstaff 2011-10-25 15:35:45 CEST
Über die neue Variable "ssl/host/extensions" kann ein Shell-Script definiert werden. Diese wird beim Erstellen/Erneuern von Zertifikaten eingebunden. Dort muss die Funktion "createHostExtensionsFile" definiert werden, die als Parameter den FQDN des Rechners bekommt und einen Dateinamen mit den Erweiterung zurück gibt. Diese Datei wird dann bei der Generierung der Zertifikate mit der Option "-extfile" verwendet.

Ein Beispiel für eine solches Shell-Skript liegt hier /usr/share/doc/univention-ssl/extensions-example.sh. (Es definiert zusätzlich zu den Standard UCS Extension noch subjectAltName, so dass im Zertifikat dann zusätzlich z.B.             X509v3 Subject Alternative Name -> DNS:master.ww.ee, DNS:master gesetzt ist).
Comment 2 Felix Botner univentionstaff 2011-10-25 15:42:16 CEST
Ich habe in /usr/sbin/univention-certificate den Hash Bang von /bin/sh (also dash) auf /bin/bash geändert, da es sonst mit dem Konstrukt "count=$[count+1];" Probleme gibt, die zu einer Endlos-Schleife führen ...

-> dash 
-> echo $[count+1]
$[count+1]

-> bash
-> echo $[count+1]
1
Comment 3 Philipp Hahn univentionstaff 2011-10-25 16:18:21 CEST
(In reply to comment #2)
> Ich habe in /usr/sbin/univention-certificate den Hash Bang von /bin/sh (also
> dash) auf /bin/bash geändert, da es sonst mit dem Konstrukt "count=$[count+1];"
> Probleme gibt, die zu einer Endlos-Schleife führen ...
> 
> -> dash 
> -> echo $[count+1]
> $[count+1]
> 
> -> bash
> -> echo $[count+1]
> 1

Die $[...]-Syntax ist selbst in Bash deprecated. Empfohlen ist
 $((count + 1))
was auch mit dash tut. Ansonsten ist
  $(expr $count + 1)
die portabelste Variante.
Comment 4 Felix Botner univentionstaff 2011-10-25 16:40:29 CEST
(In reply to comment #3)
> (In reply to comment #2)
> > Ich habe in /usr/sbin/univention-certificate den Hash Bang von /bin/sh (also
> > dash) auf /bin/bash geändert, da es sonst mit dem Konstrukt "count=$[count+1];"
> > Probleme gibt, die zu einer Endlos-Schleife führen ...
> > 
> > -> dash 
> > -> echo $[count+1]
> > $[count+1]
> > 
> > -> bash
> > -> echo $[count+1]
> > 1
> 
> Die $[...]-Syntax ist selbst in Bash deprecated. Empfohlen ist
>  $((count + 1))
> was auch mit dash tut. Ansonsten ist
>   $(expr $count + 1)
> die portabelste Variante.

$[count+1] wurde durch $((count + 1)) ersetzt, univention-certificate verwendet trotzdem noch /bin/bash, da dies auch in make-certificates.sh gesetzt ist.
Comment 5 Janek Walkenhorst univentionstaff 2011-11-07 15:00:51 CET
(In reply to comment #1)
> Über die neue Variable "ssl/host/extensions" kann ein Shell-Script definiert
> werden. Diese wird beim Erstellen/Erneuern von Zertifikaten eingebunden. Dort
> muss die Funktion "createHostExtensionsFile" definiert werden, die als
> Parameter den FQDN des Rechners bekommt und einen Dateinamen mit den
> Erweiterung zurück gibt. Diese Datei wird dann bei der Generierung der
> Zertifikate mit der Option "-extfile" verwendet.
Das Funktioniert.

> Ein Beispiel für eine solches Shell-Skript liegt hier
> /usr/share/doc/univention-ssl/extensions-example.sh. (Es definiert zusätzlich
> zu den Standard UCS Extension noch subjectAltName, so dass im Zertifikat dann
> zusätzlich z.B.             X509v3 Subject Alternative Name ->
> DNS:master.ww.ee, DNS:master gesetzt ist).
Dieses Beispiel funktioniert auch (FF akzeptiert dann auch den Hostnamen für SSL)
Comment 6 Janek Walkenhorst univentionstaff 2011-11-07 15:19:38 CET
Changelog OK
Comment 7 Sönke Schwardt-Krummrich univentionstaff 2011-12-13 15:49:55 CET
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert
werden: "Clone This Bug"