Beantragung von Serverzertifikaten

Aktueller Hinweis: Unser Provider, der DFN-Verein (Deutsches Forschungsnetz e.V.), stellt den Betrieb seiner bisherigen, selbstbetriebenen Zertifizierungsstelle schrittweise ein. Ab dem 31.12.2022 werden hierüber keine Serverzertifikate mehr ausgestellt (und ab dem 31.8.2023 auch keine Nutzerzertifikate mehr). Die bis dahin bereits ausgestellten DFN-Zertifikate bleiben jedoch bis zu ihrem Ablaufdatum gültig, so dass für bestehende Zertifikate zunächst keine Aktion erforderlich ist.

Der DFN-Verein hat ab sofort die Ausstellung von Zertifikaten an die europäische Zertifizierungsstelle "GÉANT "ausgelagert. GÉANT wiederum hat zur Zeit den Dienstleister "Sectigo" mit der technischen Durchführung der Zertifikaterstellung beauftragt, so dass ab dem 1.1.2023 Serverzertifikate über Sectigo zu beantragen sind (Nutzerzertifikate ab dem 1.9.2023, hierzu werden wir gesondert informieren).

 

Diese Hinweise richten sich an Bereichsadministratoren der Universität, deren Abteilungen eigene Server (insbesondere Webserver) betreiben.

Serverzertifikate benötigen Sie, um die Echtheit eines Servers zu bestätigen. Dies wird beispielsweise bei verschlüsselter Übertragung von Webseiteninhalten per SSL ("https") eingesetzt.

Generell ist für die Erstellung und Installation von Serverzertifikaten (SSL-Zertifikaten) wie folgt vorzugehen:

  1. Erzeugen eines Zertifikatrequests mit einem privaten Key auf dem Server
  2. Beantragen des Zertifikats durch Hochladen des Requests bei GÉANT/Sectigo
  3. Installation des Zertifikats (und ggf. der Zertifikatkette) auf dem Server

 

1. Erzeugen eines Zertifikatrequests auf dem Server

Das Beantragen von Serverzertifikaten ist etwas komplizierter als die der Nutzerzertifikate. Für das Erzeugen des Zertifikatrequests kann entweder das Paket »openssl« oder das Paket »gnutls« (ggf. inklusive »gnutls-utils«) verwendet werden, welche auf dem Server installiert und konfiguriert sein müssen. Auf Linux-Servern gehen Sie bitte wie folgt vor:

  • Melden Sie sich als User "root" am System an.
  • Erzeugen Sie einen privaten Schlüssel (Key) mit folgendem Befehl:

    (openssl)# openssl genrsa -out private.pem 4096

    (gnutls)# certtool -p --rsa --pkcs8 --empty-password --sec-param=medium --outfile private.pem

    Damit wird im aktuellen Verzeichnis eine Datei namens "private.pem" angelegt, die den privaten Schlüssel mit einer Länge von 4096 bit für den Server enthält. Wichtig: Bitte achten Sie unbedingt darauf, die Berechtigung der Datei "private.pem" so zu setzen, dass ausschließlich der User, dem das Zertifikat gehören soll, Zugriff darauf hat!
    Hinweis: Neben "RSA"-Keys sind auch "EC"-Keys möglich.
     
  • Erzeugen Sie nun die Request-Datei für die Beantragung des Zertifikats:
    Variante 1: Eingabe der Requestdaten über die Befehlszeile:

    (openssl)# openssl req -sha256 -key private.pem -new -out request.pem

    (gnutls)# certtool -q --load-privkey private.pem --empty-password --outfile request.pem

    Es wird aus dem eben angelegten privaten Schlüssel eine Datei "request.pem" erzeugt, die Sie für die Beantragung des Zertifikats benötigen.
    Bei der Erzeugung der Request-Datei werden Sie nach mehreren Informationen gefragt, die in die Datei und das Zertifikat aufgenommen werden. Antworten Sie bitte wie folgt (bitte genau die angegebene Schreibweise übernehmen!):
     
    • Country Name: DE
    • State or Province Name: Schleswig-Holstein
    • Locality Name (City): Luebeck
    • Organization Name: Universitaet zu Luebeck
    • Organizational Unit: Ihr Institutsname*
      *Anmerkung: Ab sofort ist das Feld "Organizational Unit" nicht mehr Bestandteil von Serverzertifikaten und kann daher leergelassen werden.
    • Common Name: Server-Name bzw. Website-Name, für den das Zertifikat ausgestellt werden soll, z.B. server1.xyz.uni-luebeck.de bzw. www.xyz.uni-luebeck.de (hat der Server weitere virtuelle DNS-Namen, die ebenfalls in das Zertifikat eingebunden werden sollen, können diese am besten über eine Datei request.cnf in den Request eingebunden werden, siehe dazu nächster Abschnitt "Variante 2")
    • Email-Address: Email-Adresse des Server-Administrators
    • Challenge Passwort: Lassen Sie dieses Feld bitte leer, ansonsten kann es sein, dass der Server bei jedem Start nach diesem Zertifikatpasswort fragt.
    • Optional Company Name: Leer lassen

    • zusätzlich gnutls:

    • DC: Leer lassen
    • UID: Leer lassen
    • Enter a dnsName of the subject of the certificate: Es werden solange neue Namen abgefragt, bis ein Name leer gelassen wird
    • URI: frei lassen
    • IP adress: frei lassen
    • Does the certificate belong to an authority? n
    • Will the certificate be used for signing? n
    • Will the certificate be used for encryption? n
    • Is this a TLS web client certificate? n
    • Is this a TLS server certificate? y
     
    Variante 2: Eingabe der Requestdaten über eine Datei:
    Erzeugen Sie eine Textdatei, z.B. mit dem Namen "request.cnf" und dem folgenden Inhalt:

    [req]
    distinguished_name     = ca_distinguished_name
    req_extensions = v3_req

    [ca_distinguished_name]
    countryName = Country Name (2 letter code)
    countryName_default = DE
    stateOrProvinceName = State or Province Name (full name)
    stateOrProvinceName_default = Schleswig-Holstein
    localityName = Locality Name (eg, city)
    localityName_default = Luebeck
    organizationName = Organization Name (eg, company)
    organizationName_default = Universitaet zu Luebeck
    commonName = Common Name (e.g. server FQDN or YOUR name)
    commonName_default = www.XYZ.uni-luebeck.de
    emailAddress = Email Address
    emailAddress_default = admin.emailadresse@uni-luebeck.de

    [v3_req]
    subjectAltName = @alt_names

    [alt_names]
    DNS.1 = www.XYZ.uni-luebeck.de
    DNS.2 = XYZ.uni-luebeck.de

    DNS.3 = ... usw.

    Der Vorteil dieser Methode ist, dass Sie in der Config-Datei beliebig viele DNS-Namen angeben können, die in das Zertifikat eingebunden werden sollen.
    Die Request-Datei unter Verwendung der obigen Config-Datei erstellen Sie dann mit dem folgenden Befehl:

    # openssl req -sha256 -key private.pem -new -out request.pem -config request.cnf -nodes

    Hinweis: Bei den einzelnen Feldern werden die in den Default-Einträgen der Datei angegebenen Werte angezeigt und durch Drücken von "Enter" in den Request übernommen.
     

2. Beantragen des Zertifikats durch Hochladen des Requests bei GÉANT/Sectigo

  • Durch Klicken auf "Your Institution" gelangen Sie zum folgenden Dialog:
  • Geben Sie hier im Suchfeld "Universität zu Lübeck" ein. Im unteren Bereich erscheint dann der Eintrag "University of Luebeck - uni-luebeck.de". Wenn Sie den Haken bei "Remember this choice" setzen, brauchen Sie die Suche der Institution das nächste Mal nicht mehr zu machen. Klicken Sie dann auf den Eintag "University of Luebeck" im unteren Feld.
  • Falls dann diese Ansicht erscheint, klicken Sie auch hier noch einmal auf "University of Luebeck". Diese Ansicht wird das nächste Mal direkt erscheinen, wenn Sie im vorigen Dialog den Haken bei "Remember this choice" aktiviert hatten.
  • Nach Auswahl der Institution erscheint das Anmeldefenster unseres IDM-Systems. Melden Sie sich hier mit Ihrem Uni-IDM-Account an.
  • Nach erfolgreicher Anmeldung befinden Sie sich im Sectigo Certificate Manager. Sie sehen eine Liste Ihrer bisherigen Zertifikate und deren Stati (Issued:Gültig, Requested: Beantragt, aber noch nicht genehmigt, Expired: Abgelaufen, Revoked: Gesperrt). Um ein neues Zertifikat zu beantragen, klicken Sie oben rechts auf "Enroll Certificate".
  • Sie gelangen nun auf das Webformular zur Beantragung einen SSL-Serverzertifikats. Im oberen Bereich werden die Organisation und Ihre E-Mail-Adresse automatisch eingetragen. Hier und auch bei den folgenden Punkten "Certificate Profile" und "Certificate Term" können keine Änderungen gemacht werden. Das Profil ist immer "OV Multi-Domain", und die Gültigkeitsdauer beträgt immer ein Jahr.
  • In dem nun folgenden Abschnitt wird der unter Punkt 1 dieser Anleitung erstellte Zertifikatrequest angegeben. Dies kann entweder durch Hochladen der PEM-formatierten Request-Datei (Punkt "Upload CSR") geschehen oder einfach durch Einfügen deren Inhalts in das Textfeld "CSR". Nach dem Upload oder dem Einfügen werden die im CSR enthaltenen Werte für den "Common Name" und die "Subject Alterative Names" angezeigt. Hier sollte noch einmal überprüft werden, ob die Liste vollständig ist und ob alle Namen korrekt geschrieben sind. Mittels Klick auf das "X"-Symbol können Namen entfernt und mit "Add Domain Name" weitere hinzugefügt werden. Der Common Name kann hier allerdings nicht mehr geändert werden. Sollte dieser falsch sein, muss ein neuer Request erzeugt werden.
  • Im unteren Teil des Request-Formulars können im Feld "External Requesters" noch weitere E-Mail-Adressen angegeben werden, an die die Informationen zum Zertifikat (Genehmigung, Ablaufnachricht etc.) geschickt werden. Es kann sinnvoll sein, für den Serverbetrieb zusätzlich zur persönlichen eine Funktionsadresse anzugeben, damit weitere Personen, z.B. beim Wechsel der Zuständigkeit, die Informationen erhalten.
  • Das Kommentarfeld kann leergelassen werden.
  • Das Aktivieren des Felds "Auto Renew" und die Angabe einer Tagezahl bewirkt, dass diese Anzahl von Tagen vor dem Ablauf des Zertifikates automatisch ein neuer Request im System erzeugt wird. D.h. der in dieser Anleitung beschriebene manuelle Vorgang muss dann nicht erneut durchgeführt werden. Nach Genehmigung des Auto Renew Requests erhalten Sie das erneuerte Zertifkiat automatisch per E-Mail. Dieses wird dann zusammen mit dem bisherigen privaten Key genutzt.
  • Durch Klick auf den Button "Submit" senden Sie den Zertifikat-Request ab. Dieser kann danach nicht mehr geändert werden und wird dann umgehend von den zuständigen Mitarbeiter/innen im ITSC bearbeitet. Da die Genehmigung nicht automatisch erfolgt, beachten Sie bitte mögliche Verzögerungen durch Wochenenden und Feiertage.

3. Installation des Zertifikats

  • Nachdem wir den Zertifikatantrag genehmigt haben, erhalten Sie vom Sectigo-System eine E-Mail im vorstehend zu sehenden Format an Ihre eigene und an die eventuell unter "External Requesters" angegeben zusätzlichen Adressen.
  • Diese E-Mail enthält Links, die das Herunterladen des Zertifikats in verschiedenen Formaten erlaubt. Für Linux-Webserver (Apache/Nginx) wird im Normalfall das PEM-Format benötigt, für Windows (IIS) das PKCS#7-Format.
  • Zusätzlich sind im unteren Abschnitt der E-Mail Links zum Download der Root-/Intermediate-Zertifikatkette enthalten, die im Normalfall ebenfalls auf dem Server installiert werden muss. Bitte beachten Sie, dass die bisherige Zertifikatkette der DFN-CA nicht für die neue GÉANT/Sectigo-CA gilt und in jedem Fall ersetzt werden muss, wenn Sie statt der DFN- nun GÉANT-Zertifikate nutzen.

Weitere Hinweise:

  • Die bisherigen Antragsformulare in Papierform entfallen ersatzlos. Die Beantragung der Zertifikate erfolgt wie oben beschrieben nach der Anmeldung mit Ihrem IDM-Account. Der Besitz eines gültigen IDM-Accounts ist als Identitäts- und Zugehörigkeitsnachweis ausreichend, da die Identifikation Ihrer Person bei der Einstellung durch die Personalabteilung oder bei der Immatrikulaltion durch das SSC erfolgt ist.
  • Bitte beachten Sie, dass es pro Common Name (CN) nur maximal zwei gleichzeitig gültige Zertifikate geben darf. Sollten Sie für einen CN ein drittes Zertifikat beantragen, das wir dann genehmigen, wird das älteste der dann drei Zertifikate dieses Namens automatisch vom System gesperrt (revoked). Auf dieses Verhalten haben wir keinen Einfluss, und wir werden die Anzahl der gültigen Zertifikate eines CNs im Normalfall nicht vor der Genehmigung neuer Anträge überprüfen.
  • Falls ein Zertifikat nicht mehr benötigt wird, sperren Sie es bitte selbst im Sectigo Certificate Manager (Zertifikat in der Liste anhaken und auf den Button "Revoke" klicken).