Neues Apache Modul ermöglicht Datei-Validierung ohne Datei

Dieser Beitrag soll unseren Lesern einen kurzen Einblick in unsere Arbeit im Hosting- & CDN-Umfeld geben und skizzieren, wie eine SSL/TLS-Automatisierung auch bei kleineren und mittelständischen Web-Hostern in wenigen Schritten regelkonform, sicher und kostenneutral implementiert werden kann:

Aber vorweg eine kurze Auffrischung:

Bestellt ein Hoster ein SSL-Zertifikat mit Domain-Validierung, so hat er die Möglichkeit, sich für verschiedene Validierungs-Methoden zu entscheiden.

Methode Beschreibung Pro Contra
Datei Die Zertifizierungsstelle prüft den Inhalt einer Datei, die sich auf dem Webserver befindet. Dateiname und Inhalt wird hierbei von der Zertifizierungsstelle vorgegeben. Der Hostname des Webservers entspricht hierbei meist dem Allgemeinen Namen, der mit dem Zertifikat abgesichert werden soll.
  • Auf Versand einer E-Mail (an den Kunden) kann verzichtet werden.
  • Die DNS-Infrastruktur muss nicht angesteuert werden.
  • Der Hoster muss nicht der DNS-Verwalter sein.
  • Eine Datei muss auf dem Webspace des Kunden erzeugt werden.
  • Der Kunde kann die Datei löschen, bevor Validierung durchgeführt wurde.
  • Die Erzeugung der Datei erfordert ggf. Schreibzugriff für Ihre Bestell-Routine auf das jeweilige Webspace des Kunden.
  • Erzeugte Dateien werden häufig vergessen und verursachen Support.
DNS Die Zertifizierungsstelle prüft per DNS die existenz eines vorgegebenen CNAME-Eintrages und dessen Wert.
  • Auf Versand einer E-Mail (an den Kunden) kann verzichtet werden.
  • Es muss keine Datei auf dem Webspace des Kunden erzeugt werden.
  • Der Hoster muss der DNS-Verwalter sein.
  • DNS-Einträge werden oft erst mit Verzögerung übernommen.
  • Ansteuerung der DNS-Infrastruktur oft komplex.
  • Vorgenommene Einträge werden häufig vergessen oder wundern den Kunden (=Support).
E-Mail Die Zertifizierungsstelle sendet eine E-Mail an eine vorgegebene E-Mail Adresse und der Kontakt muss der Bestellung zustimmen.
  • Es muss keine Datei auf dem Webspace des Kunden erzeugt werden.
  • Die DNS-Infrastruktur muss nicht angesteuert werden.
  • Der Hoster muss nicht der DNS-Verwalter sein.
  • Der Kunde erhält eine E-Mail und muss der Zertifizierung zuerst zustimmen.
  • Keine von der Zertifizierungsstelle vorgegebene E-Mail Adresse kann vom Kunden empfangen werden.
  • Keine wirkliche Automatisierung möglich.

 

Je nach Umgebung und Umfang bevorzugen Hoster in der Regel die Validierung neuer SSL/TLS Zertifikate per DNS oder Datei, obwohl die Validierung per DNS fast ausschließlich aus einem simplen Grund eingesetzt wird: Die Sicherheit und der Zwang zur Regelkonformität (Compliance) erlaubt es dem Bestell-System des Hosters nicht, mit Schreibzugriff auf den Webspace des Kunden zuzugreifen.

Mit dem von CertCenter entwickelten Apache-Modul mod_fauth können Hoster nun wieder auf Dateivalidierung setzen, ohne sich um die Verwaltung etlicher für die Validierung genutzter Dateien kümmern zu müssen. Dies gilt derzeit für domainvalidierte SSL-Zertifikate der Zertifizierungsstellen (CAs) Thawte, GeoTrust, RapidSSL, GlobalSign, AlphaSSL sowie AlwaysOnSSL (Symantec Encryption Everywhere).

Wie funktioniert die Dateivalidierung ohne Dateien?

Natürlich ändert mod_fauth nicht die Vorgehensweise seitens der Zertifizierungsstellen. Eine Datei-Validierung ist und bleibt eine Datei-Validierung. Das Modul täuscht die Prüfmechanismen der Zertifizierungsstellen, indem es bei jedem Zugriff auf nicht existierende Dateien noch vor der Rückmeldung eines „404 Not Found“ prüft, ob der angeforderte Dateiname dem Muster einer Validierungsdatei entspricht. Entspricht der Name der angefragten Datei dem Muster einer Validierungsdatei, verbindet mod_fauth zu einer von CertCenter betriebenen Key-Value Datenbank und sucht dort nach einem hinterlegten Inhalt (Value) für den abgefragten Dateinamen (Key). Wird ein Datensatz gefunden, wird dessen Inhalt vom Modul so ausgeliefert, als würde die Datei existieren. Hierbei wird der Status 404 durch den Status 200 ersetzt und der Inhalt aus der Datenbank an den Client der Zertifizierungsstelle ausgeliefert. Wird kein passender Inhalt gefunden, wird der reguläre 404 Fehler ausgeliefert, als wäre das Modul nicht vorhanden.

Kommunikation mit der Key-Value Datenbank

Das Modul kümmert sich verlässlich darum, die Daten aus der Key-Value Datenbank abzufragen und sie an die Prüfsysteme der Zertifizierungsstelle auszuliefern. Aber natürlich müssen vorher auch Daten gespeichert werden. Und zwar durch den Hoster. Es handelt sich hier um die Daten, die nach der Übermittlung eines Auftrages vom CertCenter API bereitgestellt werden.

Welche Daten müssen in der Datenbank gespeichert werden?

Das CertCenter API (REST oder SOAP) liefert als Antwort auf jede Bestellung mit der Validierungsmethode „FILE“ eine Struktur zurück, die einen vorgegebenen Dateinamen und dessen Inhalt definiert. Beispiel der Daten, die die API liefert:

Wie kommen die Daten in die Datenbank?

Die von der API bereitgestellten Daten müssen nun über den Webservice in der Key-Value Datenbank gespeichert werden. Folgendes PHP-Beispiel zeigt, wie dies funktioniert.

Hinweis: In diesem Beispiel dient $FileAuthDVDetails->FileName als Key und $FileAuthDVDetails->FileContents als Value. Bei den GlobalSign-Produkten sowie AlwaysOnSSL (Symantec Encryption Everywhere)-Zertifikaten gilt jedoch, dass beim Speichern von Value nicht der Dateiname als Key verwendet werden muss, sondern der Hostname (Common Name), für den das Zertifikat bestellt wurde.

Wie werden die Daten wieder gelöscht?

Ein Garbage-Collector kümmert sich automatisch darum, alte Daten zu entfernen. Hierüber müssen Sie als CertCenter-Partner nicht nachdenken.

Kompatibilität

Das Modul wurde von uns für den Einsatz auf Apache 2.x entwickelt und ist in allen erdenklichen Umgebungen einsetzbar. Egal ob in Verbindung mit PLESK, cPanel oder anderen Hosting-Umgebungen. Das Modul hat keine besonderen Voraussetzungen. Nur OpenSSL (für den sicheren Verbindungsaufbau zum Webservice), gcc und den Apache Webserver.

Download und Nutzung

Das Apache Modul kann hier heruntergeladen werden und wird allen Interessenten unter der MIT Lizenz zur Verfügung gestellt. Für die Verwendung des Moduls mit der von CertCenter kostenlos bereitgestellten Key-Value Datenbank benötigen Sie einen API-Key. Ihren API-Key für den Webservice erhalten Sie von unserem Support-Team. Natürlich können Sie auch Ihren eigenen Webservice anbinden, und auf die durch CertCenter bereitgestellte Key-Value Datenbank verzichten. Das Modul setzt keinen Partnerstatus bei CertCenter voraus und funktioniert natürlich unabhängig von den Bezugswegen der Zertifikate.

Facebooktwittergoogle_plusredditpinterestlinkedinmailFacebooktwittergoogle_plusredditpinterestlinkedinmail