SSL-Zertifikate beantragen

Diese Seite richtet sich an DV-Koordinatoren von Instituten und Einrichtungen, die SSL/TLS/HTTPS-Zertifikate (nach dem X.509-Standard) für den Betrieb von Servern benötigen.

Zertifikat für Server beantragen

Um ein Zertifikat für einen Server zu beantragen, müssen folgende Arbeitsschritte durchgeführt werden:

  1. Sie sind DV-Koordinator Ihres Instituts/Ihrer Einrichtung.
  2. Sie tragen einige Basisinformationen über den Server zusammen:
    • CN: Das Attibut Common Name enthält den DNS-Namen des Servers im Zertifikat. Beispiele: srv01.inst.tu-bs.de, www .inst.tu-braunschweig.de
    • OU: Das Attribut Organisational Unit enthält den Namen Ihres Instituts.
    • E-Mail Adresse: Für Kontakt & Zusendung Zertifikat benötigt
    • Vorgegebene Attribute, die Sie übernehmen müssen:
      • O: Organisation: Technische Universitaet Braunschweig
      • L: Locality: Braunschweig
      • ST: State (or province): Niedersachsen
      • C: Country: DE
    • Zertifikatsprofil: Als Einsatzzweck ist Webserver im Online-Formular vorgegeben, dort können Sie u.a. auch LDAP-, Mail-Server wählen.
  3. (Sie installieren ggf. openssl auf Ihrem Linux Server/Rechner nach).
  4. Sie generieren einen Zertifikatsantrag (certificate request):
  5. Sie beantragen das Zertifikat über die
    • Füllen Sie das Online-Formular entsprechend aus.
    • Laden Sie auch die zuvor erzeugte Datei mit dem Zertifikatsantrag (certificate request) hoch.
    • Sie legen eine Sperr-PIN fest mit der Sie das Zertifikat später sperren können (insbes. bei Kompromittierung) Die Sperr-PIN hat Passwort-Charakter und muss sicher verwahrt werden.
    • Nach Absenden des Online-Formular wird ein PDF generiert.
    • Das ausgedruckte und von Ihnen unterschriebene PDF mit dem Zertifikatsantrag legen Sie persönlich im IT-Service-Desk vor.
    • Die Zertifizierungsrichtlinien schreiben eine persönliche Identifizierung mit einem gültigen, amtlichen Lichtbildausweis (vorzugsweise Personalausweis) vor.
    • Das Zertifikat wird digital signiert und Ihnen per EMail zugestellt.
    • Diese E-Mail enthält auch die Seriennummer für Rückfragen.
  6. Sie installieren das Zertifikat auf dem Server
  7. Hier achten Sie darauf, dass Sie folgende Dateien in den Dienstkonfigurationen referenzieren:

Abweichende CN-Attribute

Das CN-Attribut ist das wichtigste Attribut im Zertifikat. Es muss den vollständigen Namen des Servers beinhalten. Gemeint ist dabei der vollständige Servername mit Domainangabe (FQDN, „fully qualified domain name“). Dieser ist beispielsweise im KDD nachzuschlagen oder mit den Kommandos nslookup bzw. host per DNS abzufragen. In Ausnahmefällen kann auch der Name gesetzt werden, unter dem der Dienst im Netz erreichbar sein soll (Stichworte „DNS-Alias“, „Virtual Host“). In der Regel werden Namen, unter denen der Dienst im Netz erreichbar sein soll, nicht als CN über den FQDN angegeben, sondern über sog. alternative Attribute. Diese teilen Sie uns bitte als schriftliche Ergänzung zum Zertifikatsantrag (formlos) mit.

Beispiel FQDN zur Verwendung als CN-Attribut: server01.inst.misc.tu-bs.de Beispiel alternatives Attribut (vom Typ DNS): www.institutsname.tu-bs.de CN-Attribute müssen zwingend auf eine der auf die TU Braunschweig registrierten Domains tu-bs.de„ oder tu-braunschweig.de enden.

Zertifikatsantrag erzeugen

Der folgende Abschnitt beschreibt Details zur Erzeugung von privatem Schlüssel und Zertifikatsantrag.

Zertifikatsantrag und privaten Schlüssel erzeugen

Wenn Sie noch kein SSL auf Ihrem Server einsetzen, verfahren Sie bitte, wie im Folgenden beschschrieben. Zertifikatsanträge müssen in einem maschinell verarbeitbaren Format bei der RA eingereicht werden, dem Public Key Cryptography Standard Nr 10, PKCS#10, und werden bei Verwendung eines geeigneten Werkzeuges automatisch erstellt. Der Zertifikatsantrag setzt sich aus 4 Teilen zusammen:

  1. dem „Subject Distinguished Name“, kurz DN, die teilweise durch die Policy vorgegeben sind, wie Landesbezeichnung, Country, C=de; die Ortsbezeichnung O=Technische Universitaet Braunschweig
  2. den optionalen Attributen
  3. einer digitalen Signatur mit dem privaten Schlüssel (der später auch auf dem Server abgelegt wird)
  4. einer Kennzeichnung des verwendeten Signaturalgorithmus

Insbesondere wenn Sie mehrere Zertifikate beantragen, sollten Sie sich beispielsweise eine Konfigurationsdatei für OpenSSL erstellen, in der die wesentlichen Angaben bereits enthalten sind. Im Unterabschnitt „OpenSSL-Konfigurationsdatei“ ist ein Beispiel angegeben.

Zertifikate für einen Windows-Dienst erstellen Sie am besten mit Unterstützung dieses Supportartikels (D307267) von Microsoft.

Falls Sie Ihren Dienst bisher ohne Zertifikat betreiben, müssen Sie ein entsprechendes Schlüsselpaar nach dem RSAVerfahren erzeugen. Das folgende openssl-Kommando führt die Schlüsselgenerierung, die Abfrage eines Passwortes für diesen Schlüssel, die Attribut-Abfrage und die anschliessende Erstellung des Zertifikatsantrages durch:

openssl req -config myopenssl.conf -newkey rsa:4096 -outform pem -out certreq.pem

Die einzelnen Befehlsteile bedeuten folgendes:

  1. openssl: Programmname des Openssl-Kommandos, evtl. muss der komplette Pfad, z.B. /usr/local/bin/openssl angegeben werden.
  2. req: erstellt einen PKCS#10-Antrag
  3. -config: verweist ggf. auf die ssl-Konfig-Datei für Voreinstellungen, siehe Abschnitt „OpenSSL Konfigurationsdatei“
  4. -newkey rsa:4096: neues Schlüsselpaar mit RSA und einer Key-Länge von 4096 Bit
  5. -outform PEM: Privacy Enhanced Mail Ausgabeformat
  6. -out certreq.pem: speichert den Antrag unter certreq.pem. Achtung: die Konfigurationsdatei enthält die Direktive, den neu zu erstellenden privaten Schlüssel in server-key.pem zu speichern. Sollen mehrere Anträge hintereinander erstellt werden, müssen die Dateien nach jedem Durchgang umbenannt werden, um ein Überschreiben zu vermeiden!

Zertifikatsantrag ohne erneute Erzeugung eines privaten Schlüssel erzeugen

Setzen Sie bereits SSL auf Ihrem Server ein und möchten Sie den dafür verwendeten private key weiter verwenden, so erzeugen Sie den Zertifikatsrequest wie in diesem Abschnitt beschrieben.

Läuft der Dienst mit einem selbst signierten Zertifikat und haben Sie bereits einen RSA-Schlüssel erstellt mit einer Länge von 2048 Bit, können Sie diesen Schlüssel für Ihr neues Zertifikat weiter verwenden. Mit folgendem Kommando kann dann eine Zertifizierungsanfrage für den vorhandenen Key (server.key) erstellt werden:

openssl req -new -config myopenssl.conf -key server-key.pem -keyform PEM -outform pem -out certreq.pem

Mit -keyform PEM bzw. -keyform DER sollten Sie das Format des vorhandenen Schlüssels berücksichtigen.

Entfernen der Passphrase für automatischen Start von Diensten

Beachten Sie bitte auch, dass Sie den Dienst den Sie mit dem so beantragten Zertifikat ausstatten beim Start/Neustart stets die Angabe der Passphrase erfordert. Um einen Dienst auch ohne manuelle Eingabe der Passphrase starten zu können, muss man ggf. auf die Passphrase verzichten. Für den Betrieb von Diensten, die auch nach einem ungeplanten Neustart des Servers (z.B. Stromausfall, Softwarefehler) sofort und ohne manuelle Intervention erreichbar sein sollen, muss die Passphrase entfernt werden. Darüber hinaus setzen manche Produkte voraus, dass man zuvor die Passphrase entfernt.

Das Entfernen der Passphrase ist kritisch und aus Sicht der IT-Sicherheit nicht empfehlenswert. Das Zertifikat auf dem Server ist dann ungeschützt hinterlegt und kann bei einer Kompromittierung des Servers besonders einfach kopiert und für Angriffe genutzt werden. Grundsätzlich - ob mit oder ohne Passphrase - gilt: Sollte der Server gehackt werden, so ist das Zertifikat samt private key nicht mehr vertrauenswürdig. Das Zertifikat muss dann umgehend gesperrt werden. Sie müssen in einem solchen Fall sowohl einen neuen private key generieren, als auch ein neues Zertifikat beantragen.

Das Entfernen der Passphrase kann man mit dem folgenden Kommando durchgeführt werden:

openssl rsa -in server-key.pem -out server-key_nopass.pem

In Abhängigkeit von der Version von OpenSSL kann die genaue Kommandosyntax leicht abweichen.

OpenSSL Konfigurationsdatei

In manchen der zuvor aufgeführten Kommandos wird eine Konfigurationsdatei referenziert:

 ... -config myopenssl.conf ...

Der Inhalt einer solchen Datei könnte wie folgt aussehen:

#
# myopenssl.conf
#
HOME                        = .
RANDFILE                = $ENV::HOME/.rnd
[ req ]
default_bits                = 4096
default_keyfile         = server-key.pem
distinguished_name        = req_distinguished_name
attributes                = req_attributes
string_mask = nombstr
[ req_distinguished_name ]
countryName = Laendername (bitte nicht aendern)
countryName_default = DE
countryName_min = 2
countryName_max = 2

0.organizationName = Name der Organisation (bitte nicht aendern)
0.organizationName_default = Technische Universitaet Braunschweig

0.organizationalUnitName = Offizieller Einrichtungsname (ohne Umlaute)
0.organizationalUnitName_default = 

1.organizationalUnitName = Optional Abteilung oder AG im Institut
1.organizationalUnitName_default =

stateOrProvinceName = Bundesland (ausgeschrieben)
stateOrProvinceName_default = Niedersachsen
localityName = Locality Name - Stadt (Sitz der TU Braunschweig)
localityName_default = Braunschweig

commonName  = Voller DNS-Name unter dem der Service erreichbar ist
commonName_max = 64

emailAddress = Support E-Mail Adresse der Einrichtung (bevorzugt)
emailAddress_max = 40
emailAddress_default =

[ req_attributes ]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment 

Zertifikat anzeigen

Der Datei, die Sie per E-Mail aus der CA zugesendet bekommen, können Sie die in ihr enthaltenen Informationen nicht ansehen. Um die Zertifikatsinformationen einer Zertifikatsdatei anzeigen zu können, verwenden Sie:

 openssl x509 -text -noout -in server-crt.pem

Zertifikat sperren

Sollte Ihr Server kompromittiert worden sein oder sollte es Zweifel geben, dass der private key möglicher Weise offen gelegt worden ist, ist die Sperrung des auf diesem privaten Schlüssel basierenden Zertifikat notwendig. Sie haben bei der Beantragung des Zertifikates entsprechende Handlungsanweisungen unterschrieben. Auch sollten Sie bei Beantragung eines neuen Zertifikats als Ersatz oder Erneuerung für ein bereits bestehendes das vorherige Zertifikat sperren. Für die Beantragung der Sperrung benötigen Sie die bei der Beantragung angegebene Sperr-PIN.

Durch die Sperrung eines Zertifikats wird dessen eindeutige Seriennummer auf einer Sperrliste/Widerrufsliste (certificate revocation list, CRL) veröffentlicht. Bezüglich der Umsetzung der Sperrung von Zertifikaten bei Clients ist zur Zeit in manchen Fällen noch einiges im Argen. Im Idealfall ist bei einem gesperrten Zertifikat weitere Verwendung des Zertifikates aufgrund der Prüfung der Sperrliste seitens der Clients verhindert.

Die Sperrung eines Zertifikats lässt sich nicht rückgängig machen. Sollte ein Zertifikat irrtümlich gesperrt worden sein, müssen Sie ein neues Zertifikat beantragen.

Zur Durchführung einer Sperrung halten Sie bitte die Sperr-PIN und die Seriennummer des zu sperrenden Zertifikates bereit. Gehen Sie mit einem Webbrowser auf die Seite der Online-Schnittstelle der TU Braunschweig CA https://pki.pca.dfn.de/tu-braunschweig-ca/pub. Wählen Sie aus dem Menü auf der linken Seite den Eintrag „Zertifikate“ aus. Auf dieser Seite können Sie u.a. über den Reiter „Zertifikat sperren“ unter Angebe von Seriennummer, Sperrgrund und im Folgenden Sperr-PIN ein Zertifikat zur Sperrung einreichen.

Wenn Sie die Seriennummer nicht zur Hand haben, können Sie auch über den Reiter „Zertifikat suchen“ anhand von „CN“ oder im Zertifikat angegebener E-Mail Adresse das Zertifikat suchen. Dies funktioniert allerdings nur, wenn das Zertifikat veröffentlicht wurde. Für Zertifikate, die nicht als öffentlich eingetragen sind, brauchen Sie grundsätzlich die Seriennummer des Zertifikats. Die Seriennummer wurde Ihnen auch in der Mail mitgeteilt, die Sie nach der Freischaltung des Zertifikates erhalten haben.

Wenn Sie die Sperr-PIN nicht beibringen können, so stellen Sie sich bitte darauf ein, dass seitens des Teilnehmerservice der CA geeignete Methoden zur Verifikation und Absicherung durchgeführt werden müssen. Dies soll verhindern, dass Zertifikate unberechtigt gesperrt werden.

Installation eines Zertifikats für Apache

Die Konfiguration der Zertifikate ist prinzipiell bei allen Apache-Installationen sehr ähnlich – hier wird nur grundlegend dargelegt, wie dies vorzunehmen ist. Für versionsspezifische Abweichungen konsultieren Sie bitte die Hilfe über die man-pages Ihrer Linux-Distribution. Folgende Dateien werden benötigt:

  • cacertchain.crt: Diese Datei enthält alle „über“ dem Server liegenden Zertifikate bis zum Root Zertifikat der Telekom. Die Zertifikatskette die sie z.B. per wget herunterladen, finden Sie unter https://pki.pca.dfn.de/dfn-ca-global-g2/pub/cacert/chain.txt
  • cert-xxxxxxxxx.pem: Diese Datei erhalten Sie aus der DFN-PKI per E-Mail, nachdem Ihr Zertifikatsantrag erfolgreich bearbeitet wurde.
  • privkey.pem: Der private Schlüssel des Servers.

Zur Installation sind die folgenden Schritte nötig:

  1. Stoppen Sie den eventuell gestarteten Apache Webserver Dienst (z.B. „service httpd stop“)
  2. Kopieren Sie die drei Zertifikatsdateien in einen Unterordner des Apache Webservers (z.B. :/etc/apache2/ssl.key/)
  3. Editieren Sie bzw. legen Sie eine neue V-Hosts-Datei unter “/etc/apache2/vhosts.d„ an. In der Konfigurationsdatei des V-Hosts werden unter anderem die Zertifikate mit angegeben.
  4. Wichtig ist, dass „ServerName“ genau mit dem Namen angegeben wird, für den Sie das Zertifikat beantragt haben.
  5. Den Aufbau der Datei (Beispielkonfiguration) finden Sie weiter unten.
  6. Aktivieren Sie ggf. noch MOD_SSL für den Apache-Webserver
  7. Starten Sie den Apache neu
  8. Besuchen Sie die Startseite Ihres Servers, kontrollieren Sie die Logfiles

Skizze einer Beispielkonfiguration: vhost-ssl.conf

[...]
<VirtualHost _default_:443>
DocumentRoot "/srv/www/htdocs"
ServerName example.inst.tu-bs.de:443
[...]
SSLEngine on
SSLCertificateFile etc/apache2/ssl.key/certxxxxxxxxx.pem
SSLCertificateKeyFile /etc/apache2/ssl.key/privkey.pem
SSLCertificateChainFile /etc/apache2/ssl.key/cacertchain.crt
[...]
</VirtualHost>
[...]

Benutzerzertifikate

Benutzerzertifikate werden nicht ausgestellt, da hier seitens des Gauß-IT-Zentrums enge Verknüpfungen zu Projekten des Identity Managements gesehen werden.

zertifikate/ssl-zert_fuer_dv-koord.txt · Zuletzt geändert: 2017/12/04 11:44 von pilawa
Gau-IT-Zentrum