Schlagwort-Archive: SSL-Server-Zertifikat

Auslaufende Domain-Freischaltungen für Zertifikate rechtzeitig erneuern

Mit der Einführung der Domain-Freischaltungen für Zertifikate per Challenge-E-Mail Ende Mai 2018 kommen seit dem 24. August 2020 nun langsam FIFO-artig die ersten damals freigeschalteten Domains in die Phase, in der der Freischaltungszeitraum (824 Tage) bald ausläuft oder bereits abgelaufen ist. Ist die Freischaltung bereits abgelaufen, so muss diese entweder erneuert werden oder es können keine neuen Zertifikate mehr für die betroffenen Domains beantragt und ausgestellt werden.

Aufgabe für DFN-PKI Teilnehmerservice-MitarbeiterInnen mit TS-Operator-Zertifikat

Um die Domain-Freischaltung für Zertifikate zu erneuern, muss durch die DFN-PKI Teilnehmerservice-MitarbeiterInnen, die im Besitz eines TS-Operator-Zertifikats sind, über die Java RA-Oberfläche in den Bereichen „Konfiguration->Server/E-Mail-Domains“ für die betroffenen rot markierten Domains zunächst eine erneute Challenge-E-Mail versendet werden, auf die die Empfänger der Challenge-E-Mail dann entsprechend reagieren müssen. Alle Domains deren Freischaltung bereits abgelaufen ist oder deren Freischaltung innerhalb der nächsten 30 Tage ausläuft sind in der entsprechenden Übersichtsliste (Server-Domains, E-Mail-Domains) rot markiert.

Ein Doppelklick auf die betroffene Domain und ein Klick auf „Speichern“ im folgenden Fenster lösen den Versand einer frischen Challenge-E-Mail an die im vorherigen Freischaltungsdurchgang ausgewählte E-Mail-Adresse aus.

Falls für eine Domain eine der Standard-Adressen ausgewählt war und zwischenzeitlich kein MX DNS-Record mehr für diese Domain existiert, muss beim Erneuern der Freischaltung eine andere der angebotenen E-Mail-Adressen ausgewählt werden, ebenso falls sich die E-Mail-Adresse des Zonenkontakts aus dem SOA DNS-Record der Domain geändert hat.

Regelmäßige Überprüfung der Domain-Freischaltungen

Im laufenden Betrieb des DFN-PKI Teilnehmerservices in den Einrichtungen vor Ort kommen über die Zeit einzelne neue Domains, für die Zertifikate ausgestellt werden sollen, hinzu, und für andere Domains sollen evtl. keine Zertifikate mehr ausgestellt werden. Bei letzteren muss geprüft werden, ob die Domains aus der Domain-Verwaltung der Java RA-Oberfläche, ggf. nach Sperrung von noch gültigen Zertifikaten, gelöscht werden sollen. Damit sich die Situation der auslaufenden Freischaltungen über die Zeit nicht komplett zerfasert und beispielsweise in jedem Monat einige wenige Freischaltungen ablaufen, kann es gegebenenfalls sinnvoll sein, jährlich oder zweijährlich zu einem bestimmten Termin alle bestehenden Freischaltungen auf einen Schlag zu erneuern. Damit liegen dann die zukünftigen Ablauftermine aller in dem Durchgang erneuerten Domain-Freischaltungen innerhalb eines deutlich kleineren Zeitfensters zusammen und durch die jährliche bzw. zweijährliche Wiederholung werden zwischenzeitliche Neuzugänge auch wieder eingefangen.

(rkm, 25.09.2020)

Ende August 2020: Reduzierung der Laufzeit von Serverzertifikaten

Im Februar deutete sich an, dass die Laufzeit der ab Anfang September neu ausgestellten Serverzertifikate von 27 Monaten auf ca 13 Monate (398 Tage) verkürzt werden muss (Siehe „Mögliche weitere Reduzierung der Laufzeit von Serverzertifikaten„). Inzwischen wurde diese Anforderung auch in die Baseline Requirements des CA/Browser Forums aufgenommen. Die DFN-PKI hat die Laufzeitverkürzung mit der Version 7 der Zertifizierungsrichtlinie umgesetzt.

Die DFN-PKI wird im Laufe des 27.08.2020 (also ein paar Tage vor der Frist) die Konfiguration so anpassen, dass neu ausgestellte Serverzertifikate eine Laufzeit von 397 Tagen haben. Die 397 Tage sind eine SHOULD-Regel des CA/Browser Forums.

Die Teilnehmer der DFN-PKI müssen nichts besonderes beachten. Die Laufzeit von neu ausgestellten Zertifikaten wird automatisch gesetzt. Bereits bestehende, noch gültige Zertifikate mit längerer Laufzeit können ganz normal verwendet werden und zu ihrem vorgesehenen Zeitpunkt ablaufen.

Die Änderung ist für alle Zertifikate wirksam, die für Datenverarbeitungssysteme ausgestellt werden. Nutzerzertifikate sind nicht betroffen.

(Jürgen Brauckmann, 27.07.2020)

Mögliche weitere Reduzierung der Laufzeit von Serverzertifikaten

Nach Presseberichten aus der letzten Woche (z.B. https://www.golem.de/news/apple-safari-soll-nur-noch-einjaehrige-tls-zertifikate-akzeptieren-2002-146779.html) hat Apple auf einem Meeting des CA/Browser Forums angekündigt, dass seine Software (wie z.B. Safari, iOS oder macOS) ab 1. September 2020 neu ausgestellte Serverzertifikate nur noch dann akzeptiert, wenn deren Laufzeit kleiner oder gleich 398 Tagen ist.

Damit setzt sich der Trend zu kürzeren Laufzeiten und damit verbunden die Notwendigkeit von höheren Automatisierungsgraden im Handling von PKIs fort.

Da Apple bisher offensichtlich nur eine mündliche Ankündigung gemacht hat, über die nur Berichte aus zweiter Hand vorliegen, ist es zur Zeit noch nicht möglich die exakten Konsequenzen abzuschätzen. Wir verfolgen die Entwicklung und prüfen, ob wir die Laufzeit von Serverzertifikaten ab 1. September 2020 generell auf 398 Tage begrenzen müssen, oder ob es weitere Optionen geben kann, beispielsweise für Anwendungsfälle jenseits von Webservern.

Wir möchten außerdem auf die bestehenden Automatisierungsmöglichkeiten in der DFN-PKI per Web-Service-Schnittstelle (https://blog.pki.dfn.de/tag/soapclient-releases/) hinweisen. Des Weiteren arbeiten wir an der Abschaffung des bisherigen Papierformulars für Serverzertifikate, wodurch der Aufwand bei der manuellen Beantragung von Serverzertifikaten reduziert werden wird.

(Jürgen Brauckmann, 27.02.2020)

Let’s DFN-PKI!

Häufig wird in letzter Zeit die Frage nach dem Verhältnis der DFN-PKI zu Let’s Encrypt oder nach der Unterstützung des ACME-Protokolls gestellt. Es muss hierbei beachtet werden, was genau gemeint ist: Häufig wird ACME und Let’s Encrypt in einen Topf geworfen, was die Beantwortung der Frage nicht einfacher macht: Soll die DFN-PKI wirklich ACME sprechen oder soll sie so (einfach) funktionieren wie Let’s Encrypt?

Um diese Frage zu beantworten, müssen zwei Aspekte erst einmal getrennt betrachtet werden:

  1. Was ist der Unterschied zwischen der DFN-PKI und Let’s Encrypt?
  2. Unterstützt die DFN-PKI das ACME-Protokoll bzw. ist dies geplant?

Was ist der Unterschied zwischen der DFN-PKI und Let’s Encrypt?

Ganz einfach: Let’s Encrypt stellt domainvalidierte (DV) Serverzertifikate aus, die DFN-PKI stellt organisationsvalidierte (OV) Serverzertifikate aus. Aber was heißt das konkret? Das bereitgestellte Vertrauensniveau soll hier anhand der Aussage eines Serverzertifikats verglichen werden:

Zunächst das OV-Zertifikat, z.B. aus der DFN-PKI:

„Der Server www.example.com hat den öffentlichen Schlüssel 123456. Das Zertifikat wurde der Organisation XYZ ausgestellt und die Berechtigung dieser Organisation zur Verwendung der Domain in einem Zertifikat wurde geprüft. Die Rechtsperson Organisation XYZ sitzt in Land A in Stadt B in Bundesland C.“

Nun die Aussage eines DV-Zertifikats:

 „Der Server www.example.net hat den öffentlichen Schlüssel 987654“

DV-Zertifikate treffen also keine Auskunft darüber, wer den Server betreibt oder wo derjenige zu finden wäre. Das heißt, DV-Zertifikate taugen nur für die Verschlüsselung der übertragenen Daten. Die Authentisierung der juristischen Person des Verantwortlichen für den Server entfällt vollständig. Das bedeutet wiederum, dass für einen Nutzer nicht ersichtlich ist, ob er auf der richtigen Webseite ist. Dies lässt sich an www.dfn.de und www.dfn.com veranschaulichen. Beide Webseiten könnten problemlos mit validen DV-Serverzertifikaten geschützt sein. Ein Nutzer könnte dann aber nicht erkennen, ob er mit der Webseite der Organisation kommuniziert, die er intendiert hat (www.dfn.de vom DFN-Verein e.V.) oder einem völlig unbeteiligten Dritten. Noch schlimmer wird es, wenn diese Verwechslungsgefahr von Angreifern böswillig ausgenutzt wird.

Bei DV-Zertifikaten ist also lediglich die Kommunikation verschlüsselt, was Man-In-The-Middle-Angriffe verhindert. Sollte ein Betreiber aber in bösartiger Absicht www.dfn.de mit einer ähnlichen Domain und einem völlig validen DV-Serverzertifikat für diese Domain imitieren, beispielsweise um Passwörter abzugreifen, bestünde kein Schutz dagegen. Im Gegenteil würden sich viele Nutzer durch das Schloss in der URL-Zeile des Browsers möglicherweise sogar bestätigt sehen, eine „sichere“ Verbindung zu haben und daher ihr Passwort arglos eingeben.

Die zusätzlichen Aussagen zum Betreiber der Webseite bei Organisationsvalidierung (Organisationsname, Land, Ort und Bundesland) müssen durch die CA validiert werden. Diese Schritte sind in der DFN-PKI notwendig und erzeugen den wahrnehmbaren Overhead zu domainvalidierten Zertifikaten. Alle diese Werte können aber in den DFN-PKI für die betreffenden Domains vorab validiert werden, d.h. vor einer tatsächlichen Antragsstellung für Zertifikate unter dieser Domain. Wenn alle Werte für hs-pellworm.de vorab validiert sind, kann die Ausstellung aller konkreten Zertifikate mit FQDNs mit dieser Domain ohne erneute Validierung durch die DFN-PKI geschehen[1].

Unterstützt die DFN-PKI das ACME-Protokoll oder ist das geplant?

Das ACME-Protokoll wird in der DFN-PKI derzeit nicht unterstützt, ist aber perspektivisch in der Tat sehr interessant. ACMEv1 war allerdings nicht mächtig genug für die Organisationsvalidierung. Das ist mit ACMEv2 inzwischen besser geworden und ACME wurde als RFC 8555 von der IETF standardisiert. Die Umsetzung einer ACME-Schnittstelle in der DFN-PKI bringt allerdings signifikante Softwareentwicklungs-Aufwände mit sich, die wohl überlegt sein wollen.

Derzeit besteht mit der SOAP-Schnittstelle der DFN-PKI schon eine etablierte Schnittstelle, mit der ähnliche Workflows wie mit ACME umgesetzt werden können. Diese Schnittstelle ist zwar nicht standardisiert, die Softwareentwicklung gegen diese Schnittstelle wird von der DFN-PKI aber mit Beispiel-Implementierungen und API-Dokumentationen unterstützt. Der Vorteil der Unterstützung von ACME wäre also auf eine Unterstützung durch zunehmend Verbreitung findende ACME-Client-Tools beschränkt. Komplett neue Workflows, die derzeit nicht möglich wären, ergeben sich aber nicht unbedingt.

Darüber hinaus gibt es noch eine weitere Argumente, die zumindest dagegen sprechen, dass eine ACME-Unterstützung das „Allheilmittel“ für die effiziente Serverzertifikaterstellung in der DFN-PKI wäre:

  • Für einige Appliances/Softwares, die jetzt ACME mit Bordmitteln können, gilt, dass sie auf Let’s Encrypt hart verdrahtet sind – Es brächte also in diesen Fällen keinen Vorteil, wenn die DFN-PKI eine ACME-Schnittstelle anböte.
  • Die ACME-Tools funktionieren im Wesentlichen auf „normalen“ (Web-)Servern, die auch Verbindungen nach Außen aufmachen können/dürfen. Appliances, Access Points, Firewalls, interne Server ohne Außenkommunikation,… unterstützen in der Regeln kein ACME, benötigen aber auch häufig Server-Zertifikate. Dies müsste also auch bei der Verwendung von ACME mittels eigener Software auf dedizierten „Zertifikatsantragsmaschinen“ automatisiert werden – diese könnten dann aber auch gleich gegen die DFN-PKI SOAP-Schnittstelle entwickelt werden.
  • Es bleiben die Validierungspflichten von OV – so einfach wie Let’s Encrypt wird es also auch mit ACME nicht, manuelle Schritte bleiben notwendig (auch wenn diese, wie bereits jetzt, größtenteils vor der ersten Beantragung für eine Domain erledigt werden können).

Ein derzeit notwendiger manueller Schritt ist die Freigabe des Zertifikatantrags durch den Teilnehmerservice der DFN-PKI vor Ort anhand des Papierantrags, der bei der Beantragung als PDF erzeugt wird und ausgedruckt, unterschrieben und geprüft werden muss. Wenn dieser manuelle und analoge Schritt entfiele, wäre das für viele Workflows hilfreicher als die Umstellung von der DFN-PKI SOAP-Schnittstelle auf ACME. Daher konzentriert sich das Team der DFN-PKI derzeit weniger auf die Einführung der ACME-Schnittstelle als auf die Umstellung auf eine papierlose Zertifikatbeantragung für Serverzertifikate.

Fazit

ACME ist mittelfristig für die DFN-PKI ein interessanter Standard, um die SOAP-Schnittstelle abzulösen. Dies sollte aber erst passieren, wenn die bestehende SOAP-Schnittstelle „End of Life“ ist und sowieso eine Neuentwicklung ansteht, da sich keine grundlegend neuen oder effizientere Workflows durch die Umstellung auf ACME ergeben. Dies jetzt vorzuziehen würde Entwicklerkapazitäten binden, die derzeit an anderen Stellen der DFN-PKI sinnvoller eingesetzt werden.

Domainvalidierte Zertifikate wie die von Let’s Encrypt eignen sich gegebenenfalls für den privaten Gebrauch oder für Testumgebungen, Prototypen, etc. um niederschwellig an ein „echtes“ Serverzertifikat zu kommen. Auf Produktivsystemen sollte man sich aber sehr genau überlegen, ob das niedrigere Vertrauensniveau der Domainvalidierung ausreicht und ob die ACME-Tools überhaupt auf allen beteiligten Systemen lauffähig sind und auch zu den Validerungsservern der gewünschten CA kommunizieren dürfen/können.

Zur Vereinfachung von Workflows zur Ausstellung von Serverzertifikaten in der DFN-PKI wird derzeit die papierlose Beantragung von Serverzertifikaten konzipiert. Dies in Kombination mit der bestehenden SOAP-Schnittstelle erlaubt weitestgehend die gleichen Workflows wie bei der Verwendung des ACME-Protokolls. Dabei wird aber das Vertrauensniveau der DFN-PKI mit organisationsvalidierten Zertifikaten unter einer vertrauenswürdigen Root-CA und dem vertrauenswürdigen Betrieb der Sub-CAs durch den DFN-Verein genutzt, was bei einem Wechsel zu einem domainvalidierenden Anbieter nicht der Fall wäre.

(Ralf Gröper, 27.03.2019)

[1] Alle 825 Tage (=ca. 2,25 Jahre) müssen die Werte re-validiert werden. Das geschieht für Name, Land, Stadt und Bundesland „hinter den Kulissen“ automatisch durch die DFN-PCA. Für die Domains passiert dies im Self-Service durch den Teilnehmerservice vor Ort mit wenigen Klicks in wenigen Sekunden.

openssl: CSR für ein SSL-Server-Zertifikat mit mehreren Host-Namen erzeugen

Um ein SSL-Server-Zertifikat auf einem Server unter mehreren Host-Namen einsetzen zu können, muss das Zertifikat alle diese Host-Namen als sogenannte alternative Namen (SubjectAlternativeName, SAN) enthalten. Häufig davon betroffen sind Zertifikate für die Haupt-Web-Präsenz einer Einrichtung, die sowohl unter dem Host-Namen mit dem traditionellen www im Host-Namen als auch einfach unter der „blanken“ Haupt-Domain zu erreichen ist, z. B. unter www.example.org und example.org. Entsprechende Zertifikatanträge benötigen daher am besten einen Certificate Signing Request (CSR), der schon alle benötigten alternativen Namen enthält. Wird zum Erzeugen des CSRs das Kommandozeilenwerkzeug openssl genutzt, so sind diese Art von CSRs nur mit einer speziellen openssl-Konfigurationsdatei zu erzeugen.

Unten eine Beispielkonfigurationsdatei für openssl, deren Aufruf mit dem angegebenen Kommando sowohl das Schlüsselmaterial als auch den CSR mit dem angegebenen SubjectDN und den alternativen Namen erzeugt:

#
# Filename: openssl-www.example.org.conf
#
# Sample openssl configuration file to generate a key pair and a PKCS#10 CSR
# with included requested SubjectAlternativeNames (SANs)
#
# Sample openssl commandline command:
#
# openssl req -config ./openssl-www.example.org.conf -new -keyout www.example.org-key.pem -out www.example.org-csr.pem
#
# To remove the passphrase from the private key file use
#
# openssl rsa -in www.example.org-key.pem -out www.example.org-key.pem
#
# This eases automatic startup of the SSL/TLS-server when restarted or
# rebooted. Check for secure file access permissions on the private key file.
# Do not transfer the private key unencrypted over network connections.
#
# If generated directly on a secure filesystem with proper secure file access
# permissions on the server system add option -nodes to omit setting the
# secret key's passphrase protection - this eases automatic startup of the
# SSL/TLS-server when restarted or rebooted.
#
# To set an AES256 passphrase on the private key file use
#
# openssl rsa -aes256 -in www.example.org-key.pem -out www.example.org-key.pem
#

RANDFILE=/dev/urandom

[ req ]
default_bits       = 4096 # key length 4096 bits RSA
distinguished_name = req_distinguished_name
req_extensions     = req_cert_extensions
default_md         = sha256
dirstring_type     = nombstr
prompt             = no

[ req_distinguished_name ]

# requested SubjectDN
#
C   = DE
ST  = Bundesland
L   = Stadt
O   = Einrichtung
1.OU= Abteilung
2.OU= Team
CN  = www.example.org

[req_cert_extensions]

subjectAltName=@subject_alt_name

[ subject_alt_name ]

# requested SubjectAlternativeNames (SANs)
#
# SANs of type DNS
# change those FQDNs to real FQDNs in domains registered to your organisation
#
DNS.1=www.example.org
DNS.2=example.org
DNS.3=www.example.net
DNS.4=example.net

# SANs of type IP
# IP#s are normally not needed in certificates
# change those RFC 1918 IP#s to real IP#s assigned to your organisation
#
#IP.1=10.11.12.13
#IP.2=192.168.2.42

Ein äquivalenter Einzeiler für die Linux-Kommandozeile ist:

#> openssl req -newkey rsa:4096 -sha256 -keyout www.example.org-key.pem -out www.example.org-csr.pem -batch -subj "/C=DE/ST=Bundesland/L=Stadt/O=Einrichtung/OU=Abteilung/OU=Team/CN=www.example.org" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:www.example.org,DNS:example.org,DNS:www.example.net,DNS:example.net"))

Beispielangaben für den SubjectDN, die Host-Namen und ggf. IP-Adressen sind natürlich an die lokalen Gegebenheiten anzupassen.

(rkm, 01.12.2015)