Zertifikat erzeugen

Hallo zusammen,

ich versuche gerade für eien IP-Client nach dieser Aleitung SSL-Zertifikat und DNS-Alias ein neues Zertifikat zu erzeugen.
Schon der zertifikatsantrag funktioniert nicht. Folgende Meldung:

root@thhoe108:/etc/univention/ssl/thhoe006.thhoe.lan# openssl req -new -config openssl.cnf -key private.key -out req.pem
req: Error on line 31 of config file "openssl.cnf"
unable to find 'distinguished_name' in config
problems making Certificate Request
140423314396416:error:0E06D06A:configuration file routines:NCONF_get_string:no conf or environment variable:../crypto/conf/conf_lib.c:272:
root@thhoe108:/etc/univention/ssl/thhoe006.thhoe.lan# 

Zum test habe ich das selbe mit einen anderen Client getested bei dem ich die .conf nicht geändert habe. Hier kommt der selbe Fehler.

Hat sich in UCS4.3 etwas geändert, das ich übersehen habe?

Gruß

Thomas

Moin,

die Fehlermeldung ist etwas irrefuehrend, aber die Zeilenangabe stimmt: in der Zeile wird zum ersten Mal auf das Environment zugegriffen ($ENV::DEFAULT_CRL_DAYS), wahrscheinlich sind also die dort benutzen Variablen nicht belegt/exportiert.

Hallo,

das war der richtige Hinweis. Ich hatte die Varible nicht mit Daten erzeugt.

Vielen Dank

Es gibt noch einen einfacheren Weg, der einem dank der ucr Variablen „ssl/host/extensions“ und einem Beispielscript /usr/share/doc/univention-ssl/extensions-example.sh zur Verfügung gestellt wird.
Dort ist neben dem vollen Namen mit $fqdn auch schon der kurze Name mit $hostname vordefiniert. So habe ich es bei uns aktiviert:

# Die Extension kopieren:
cp /usr/share/doc/univention-ssl/extensions-example.sh \
   /etc/univention/ssl/alt-name_extension.sh

# ausführbar machen:
chmod +x /etc/univention/ssl/alt-name_extension.sh

# den hook aktivieren
ucr set ssl/host/extensions="/etc/univention/ssl/alt-name_extension.sh"

# überprüfen:
ucr get ssl/host/extensions

# Zertifikat ausstellen:
univention-certificate new -name horst.domain.tld

# Zertifikat über den kurzen Namen überprüfen
openssl x509 -in /etc/univention/ssl/horst/cert.pem -noout -text  | grep -A1 'X509v3 Subject Alternative Name'

Dadurch kann man weiterhin univention-certificate benutzen und bei hostspezifischen Anpassungen wird kurzerhand die alt-name_extension.sh erweitert, das Zertifikat erstellt und dann die Änderung zurückgenommen.
Eigentlich sollte so ein Script nicht unter/etc liegen, aber in dem Fall hilft es sich an den Hook zu erinnern :wink:

2 Likes

Hallo ThorstenS,

wie könnte deiner Meinung nach der Alias aus der Rechnerkonfiguration eingetragen werden?
Darum ging es in der ursprünglichen Frage.

univention-certificate new -name horst.domain.tld

War ein guter Hinweis. Ich habe festgestellt das für neue Geräte/Rechner vom Typ Linux keine Zertifikate erzeugt werden. Mit diesen Befehl kann ich das bei bedarf nachhohlen.

Gruß
Thomas

Hi Thomas,

das ist eine Fingerübung, die ich dir gerade nicht abnehmen kann.
Aber es gibt meiner Meinung nach zwei Ansätze, wie du das o.g. Skript aufbohren kannst

  1. über DNS
    du überträgst die ganze DNS-Zone $ZONE und suchst nach einem Eintrag für den $HORST mit einem CNAME .
    dig axfr $ZONE | grep ${HOST}.${ZONE}| awk '/CNAME/{print $1}'
    Und das/die Ergebnis/se fügst du dann noch in das o.g. Skript mit ein.

  2. über eine geschickte LDAP Anfrage
    Da ist das Wort geschickt das Problem :laughing:

Grüße
/thorsten

Mastodon