Sie befinden sich im Service: Zertifikate

Serverzertifikat beantragen

Serverzertifikat beantragen

Kurzinformation

Diese kurze Anleitung soll Ihnen lediglich einen Überblick über den Ablauf der Zertifizierung verschaffen und gliedert sich dabei in folgende Abschnitte:

 

SSL-Serverzertifikate können ausschließlich für Server offizieller Einrichtungen der RWTH Aachen ausgestellt werden.

Der RWTH muss zugeordnet sein 

  • IP Adresse und/oder
  • FQDN
Die SSL-Schlüsselkomponenten müssen nicht direkt auf dem Server erstellt werden, sondern können auf einem gesonderten Rechner erzeugt und anschließend übertragen werden (keine Installation von OpenSSL auf dem Server notwendig).

 Detailinformation

Installation OpenSSL

Das Kommandozeilentool OpenSSL sollte auf allen Unix und Linux basierten Betriebssystemen bereits verwendungsfertig vorinstalliert sein.

Unter Windows muss OpenSSL gesondert installiert und konfiguriert werden, um die notwendigen Schlüsseloperationen durchführen zu können.

OpenSSL steht unter den folgenden URLs zum Download bereit:

Bitte beachten Sie die gesonderten Installationsanweisungen der OpenSSL-Seite. Insbesondere kann es notwendig sein, eine zu OpenSSL passende Version der VC++ Redistributables zu installieren. Dies ist auf der Webseite der OpenSSL (binaries für Windows) erläutert.

Außerdem sollte die Umgebungsvariable „HOME“ gesetzt bzw. angepasst werden, z. B.:

HOME=c:\openssl\bin

Zudem muss die Variable "RANDFILE" gesetzt werden:

RANDFILE=%HOME%\.rnd

Sollte eine angepasste Version der „openssl.cfg“ Verwendung finden, kann diese ebenfalls über eine Umgebungsvariable festgelegt werden, z. B.:

OPENSSL_CONF = %HOME%\openssl.cfg

Sollten bei der Ausführung von OpenSSL Zugriffsverletzungen auftreten (z. B. „private.pem: Permission denied ...“), ist zu beachten, dass der verwendete Kommandozeileninterpreter, z. B. Eingabeaufforderung und Powershell, oder Nutzer entsprechende Zugriffsrechte auf die angegebenen Dateien haben muss.

 

Erzeugung eines Zertifikatsantrags anhand eines bestehenden RSA-Schlüssels und Zertifikates

openssl x509 -x509toreq -in cert.crt -signkey private.pem -out new_request.pem

openssl req -noout -text -in request.pem

Erzeugung eines neuen  RSA Schlüsselpaares (z.B. Modulo 3072 Bitlänge)

openssl genrsa -out private.pem 3072

Weitere Informationen zur empfohlenen Schlüssellängen findet man in den Technischen Richtlinien des BSI bzw. auf der Webseite "Cryptographic Key Length Recommedation"

 

Generierung eines neuen Zertifikatsantrags (CSR)

openssl req -new -key private.pem -out request.pem

#!/usr/bin/env bash

set -e

set -u

# set -x

readonly KEY_SIZE="4096"

readonly SERVER_PORT="443"

VHOST=""

CERT_SUBJECT=""

SUBJECT_ALTERNATIVE_NAME=""

usage() {

    cat << EOF

    ${0} SERVER_FQDN|SERVER_IP [VHOST_NAME]

    Create a new private key but use an existing

        certificate as template for a new certificate

    signing request.

    The intention is to renew a certificate gently.

EOF

}

##################################

# check number of given arguments

if [[ $# -lt 1 ]]; then

    usage

    exit

elif [[ $# -eq 1 ]]; then

    VHOST="${1}"

else

    VHOST="${2}"

fi

##################################

# let's start

echo -e "\n\tCreate a new private key but use an existing\n\tcertificate as template for a new certificate\n\tsigning request.\n\n"

##################################

# create private key

echo -e "\n\t\t- create private key if needed"

if [[ ! -f ${1}.key ]]; then

    openssl genrsa -out ${1}.key ${KEY_SIZE} &> /dev/null

else

    echo

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!"

    echo -e "\t\t  !! reuse existing key !!"

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!"

fi

##################################

# get needed information from

# existing certificate

if ping -c3 ${1} &>/dev/null; then

    echo -e "\n\t\t- get x509 subject informartion"

    CERT_SUBJECT="$(echo QUIT | openssl s_client -servername ${VHOST} -connect ${1}:${SERVER_PORT} 2>/dev/null | \

            fgrep subject | sed -e 's/^subject=//')"

    echo -e "\n\t\t- get x509 alternatvie names"

    SUBJECT_ALTERNATIVE_NAME="$(echo QUIT | openssl s_client -servername ${VHOST} -connect ${1}:${SERVER_PORT} 2>/dev/null | \

                openssl x509 -noout -text| fgrep "DNS:" | sed -e 's/\s\s*//g')"

else

    echo ""

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

    echo -e "\t\t  !! No contact to server via ICMP !!"

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"

    exit

fi

##################################

# generate CSR

echo -e "\n\t\t- create certificat signing request"

if [[ ! -f ${1}.key ]]; then

    echo ""

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

    echo -e "\t\t  !! The private key was not generated !!"

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"

    exit

fi

if [[  -f ${1}.csr ]]; then

    echo ""

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

    echo -e "\t\t  !! found a csr for this server !!"

    echo -e "\t\t  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"

    exit

fi

openssl req -new -key ${1}.key -out ${1}.csr -batch -subj "${CERT_SUBJECT}" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=${SUBJECT_ALTERNATIVE_NAME}"))

##################################

# show generated CSR

echo -e "\n"

openssl req -in ${1}.csr -noout -text

########

# EOF

Bitte beachten Sie dabei die folgenden Attribute (ausführliche Infos in der Zertifizierungsrichtlinie der DFN-PKI:

AttributKürzelBeispieleBemerkungen
Land (Country Name)CDEbitte Großbuchstaben
Bundesland (State or Province Name)STNordrhein-Westfalenexakte Schreibweise beachten!
Ort (Locality Name)LAachenexakte Schreibweise beachten!
Organisation (Organization Name)ORWTH Aachenexakte Schreibweise beachten!
Organisationseinheit (Organizational Unit Name)OU

IT Center

Lehrstuhl D fuer Mathematik

Allgemeiner Studierendenausschuss (AStA)

Studentenwohnheim KaWo1

Offizielle Bezeichnung der Einrichtung. Keine Umlaute. Keine e.V.s (juristische Personen).

Abkürzungen in Klammern zulässig, z.B. Aachener Verfahrenstechnik (AVT).

Mehrere OUs sind erlaubt, diese müssen jeweils direkt hintereinander aufgeführt werden und die Reihenfolge der benannten organisatorischen Untereinheiten sollte von größeren zu kleineren Untereinheiten absteigen.

gebräuchlicher Name (Common Name)CNwww.rz.rwth-aachen.de

pop3.test.rwth-aachen.de

Name des Servers, wie er auch im DNS eingetragen ist. Andere Namen sollen als subjectAlternativeName (SaN) eingegeben werden.

E-Mail ist seit dem 2.12.2014 als teil des DNs eines Serverzertifikats NICHT erlaubt (Anforderung des CA/Browserforums).

Bitte geben Sie in die Weboberfläche die E-Mail-Adresse ein, unter der Sie Meldungen von der DFN-PKI oder der RWTH Aachen CA erhalten möchten (z.B. das Zertifikat, Ablaufserinnerungen). Es empfiehlt sich, eine funktionale E-Mail-Adresse zu benutzen.

Falls Sie eine E-Mail-Adresse in den CSR eingetragen haben, wird diese aus dem DN automatisiert gelöscht.

RFC-Konform ist die Angabe nur eines CNs. Wenn es mehrere FQDNs mit dem gleichen Zertifikat abgedeckt werden müssen, sollen diese als subjectAltNames eingegeben werden. Dies können Sie mit folgendem OpenSSL Befehl unter Unix/Linux erreichen:

openssl req -new -key private.pem -out request.pem -batch -subj "/C=DE/ST=Nordrhein-Westfalen/L=Aachen/O=RWTH Aachen/OU=IT Center/CN=name.rwth-aachen.de" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:name1.rwth-aachen.de,DNS:name2.rwth-aachen.de"))

Windows Nutzer müssen Vorarbeit leisten:

  • csr.conf Datei generieren, folgendes eintragen

    prompt = no

    distinguished_name = req_distinguished_name

    req_extensions = req_ext

     

    [req_distinguished_name]

    C=DE

    ST=Nordrhein-Westfalen

    L=Aachen

    O=RWTH Aachen

    OU=IT Center

    CN=name1.domain.rwth-aachen.de

     

    [req_ext]

    subjectAltName = @alt_names

     

    [alt_names]

    DNS.1 = name1.domain.rwth-aachen.de

    DNS.2 = name2.domain.rwth-aachen.de

  • jetzt den OpenSSL befehl geben
     

    openssl req -new -key private.pem -config csr.conf -out request.pem

 

Wenn Sie einen Server betreiben, der die FQDNs nur aus dem CN lesen kann, dann können Sie einen CSR mit mehreren CNs wie folgt erzeugen:

openssl req -new -key private.pem -out request.pem -batch -subj "/C=DE/ST=Nordrhein-Westfalen/L=Aachen/O=RWTH Aachen/OU=IT Center/CN=name1.rwth-aachen.de/CN=name2.rwth-aachen.de/CN=name3.rwth-aachen.de"

 

Upload des Zertifikatsantrags - Generierung Teilnehmererklärung

Zur Beantragung Ihres SSL-Zertifikates müssen Sie Ihr Zertifikatsantrag (CSR) über die Web-Seite des DFN zur Zertifizierung einreichen. Öffnen Sie dazu den Web-Service des DFN, Bereich Server-Zertifizierung (Infos zur Auswahl des richtigen Zertifikatsprofil finden auf der Übersichtsseite des DFN).

Füllen Sie das Formular vollständig aus und folgen Sie den Anweisungen des Web-Services.

Laden Sie den von Ihnen generierten Zertifikatsantrag (CSR) hoch

Upload Serverzertifikat 1

Geben Sie Ihren vollständigen, auf Ihrem Personalausweis vermerkten Namen an. Hier ist kein funktionaler Namen erlaubt. Die Person, die den Antrag unterschreibt, muss eine natürliche Person und kein Institut oder Abteilung sein.

Upload Serverzertifikat 2

Geben Sie eine E-Mail-Adresse an. An diese E-Mail-Adresse wird sowohl das ausgestellte Zertifikat als auch etwaige Benachrichtigungen vom DFN geschickt.

Upload Serverzertifikat 3

Geben Sie Ihr Institut/ Ihre Einrichtung (Organisationseinheit) an. Der Name darf nicht abgekürzt, sondern muss vollständig angegeben werden. Den vollständigen Namen des Instituts/ der Einrichtung finden Sie im Campus.

Diese Eintragung ist jedoch optional: Sollten Sie keinem Institut/ keiner Einrichtung angehören und bspw. als Studierende/r der RWTH ein Zertifikat beantragen wollen, lassen Sie das Feld bitte frei (geben Sie also nicht RWTH Aachen als Institut/ Einrichtung an).

Upload Serverzertifikat 4

Geben Sie zuletzt ein Passwort an. Achten Sie darauf, dass dieses sicher ist.

Veröffentlichung des Zertifikats ist verpflichtend.

Aus Ihren Angaben generiert der Web-Service eine Teilnehmererklärung im PDF-Format. Diese muss ausgedruckt werden.

  • Die handschriftlich unterschriebene Erklärung kann sowohl  persönlich am IT-ServiceDesk (Standort SuperC, Seffenter Weg 23 oder Wendlingweg 10) abgegeben oder aber auf den hier beschriebenen Wegen übermittelt werden. Da eine Identitätsprüfung erfolgt, muss ein gültiges Lichtbilddokument (z.B. Personalausweis) vorgelegt werden.
  • Im Fall von Server-Zertifikaten kann der Antrag durch eine berechtigte Person auch über einen weiteren Weg eingereicht werden. Der Antagsstellende sendet die unterschriebene Teilnahmeerklärung für Server-Zertifikate in einer signierten und verschlüsselten E-Mail an ra@rwth-aachen.de.
 

Falls Sie bei der Generierung des Zertifikatsantrags einen Fehler gemacht haben, kann dies von der RWTH Registrierungsstelle korrigiert werden, ohne dass Sie den Antrag nochmal in der Weboberfläche uploaden müssen. Schicken Sie bitte eine signierte E-Mail an ra@rwth-aachen.de. Falls Sie in dem Antrag etwas unzulässiges eingetragen haben, werden Sie von der RWTH RA kontaktiert.

 

Erhalt des Zertifikats

Nachdem wir Ihre Teilnehmererklärung erhalten haben, wird die Zertifizierung veranlasst. Nach Abschluss dieses Prozesses erhalten Sie Ihr Serverzertifikat als PEM formatierte Datei per signierte E-Mail von der "dfnpki-mailsender-noreply@dfn-cert.de".

 

Einbindung des Zertifikats in den Server

Grundsätzlich haben Sie mit den beiden als PEM formatierten Dateien (privater Schlüsselteil und Zertifikat) sowie den drei Stammzertifikaten (aktuell "T-TeleSec GlobalRoot Class 2", " "DFN-Verein Certification Authority 2" und "DFN-Verein Global Issuing CA"), welche über die Seite Zertifizierungskette der DFN-PKI heruntergeladen werden können, alle benötigten Daten, um einen SSL-gesicherten Server aufzusetzen. Je nach verwendeter Server-Software müssen diese Dateien jedoch in andere Formate konvertiert werden.

Wird das Zertifikat in ASCII-Form, also als PEM-Datei, benötigt, so erfolgt die Konvertierung von dem ursprünglichen Binärformat DER wie folgt:

 openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

 

Apache

Apache verwendet PEM formatierte Schlüsselteile, sodass eine einfache Integration Ihrer Schlüsselteile möglich ist. Dabei sind in der „httpd.conf“ folgende Punkte besonders zu beachten:

    • SSLCertificateFile:
      Ihr Serverzertifikat, so wie Sie es per E-Mail erhalten haben
    • SSLCertificateKeyFile:
      Ihr privater Schlüsselteil, so wie Sie ihn in Schritt "Erzeugung des RSA Schlüsselpaares" erzeugt haben
    • SSLCertificateChainFile:
      Die komplette Zertifizierungskette als PEM formatierte Datei
       
    • Falls eine Nutzerauthentifizierung via Zertifikat erfolgen soll:
      SSLCACertificateFile:
      Hier muss ein CA-Zertifikat als PEM formatierte Datei angegeben werden
      Sollen neben der RWTH CA auch Benutzer anderer Einrichtungen sich authentifizieren,
      muss SSLCACertificatePath verwendet werden.

lighttpd

Wie auch der Apache verwendet lighttpd Schlüsselkomponenten im PEM-Format, so das keine Formatkonvertierungen notwendig sind. In der Konfiguration sind folgende Punkte besonders zu beachten:

    • ssl.engine = "enable"
    • ssl.pemfile:
      Kombination aus privaten Schlüsselteil („private.pem“ aus Schritt "Erzeugung des RSA Schlüsselpaares") sowie dem per E-Mail erhaltenem Serverzertifikat. (z. B. via „cat private.pem cert-<Seriennummer>.pem > server.pem“)
    • ssl.ca-file:
      Die komplette Zertifizierungskette als PEM formatierte Datei

Microsoft IIS

Für die Verwendung Ihres Zertifikats müssen zunächst die drei Stammzertifikate im Binärformat eingebunden werden (folgende Links zwecks Import bitte mit dem InternetExplorer öffnen DFN-Verein Global Issuing CADFN-Verein Certification Authority 2T-TeleSec GlobalRoot Class 2). Anschließend muss aus Ihrem privaten Schlüsselteil und Ihrem Serverzertifikat eine „pkcs12“-Datei erstellt werden. Dies kann mit OpenSSL erfolgen:

openssl pkcs12 -export -in cert-<Seriennummer>.pem –inkey private.pem -out Ihre_neue_PKCS12_Datei.p12 -name "My Certificate"

Verwenden Sie dazu als "cert-<Seriennummer>.pem" das von uns ausgestellte Serverzertifikat. Die Datei „private.pem“ muss Ihrem privaten Schlüsselteil aus dem Schritt "Erzeugung des RSA Schlüsselpaares" entsprechen. Die dabei neu erstellte Datei „Ihre_neue_PKCS12_Datei.p12“ kann dann in Ihre Server-Software importiert werden.

--Zum Anfang der Seite--

zuletzt geändert am 29.01.2021

Wie hat Ihnen dieser Inhalt geholfen?