Kostenfreie Zertifikate (Teil2)

Eine kleine Revolution

Im ersten Teildes Artikels ging es darum herauszuarbeiten, weshalb kostenfreie Zertifikate selbst für kleinere Szenarien nur eingeschränkt brauchbar sind. Seit 23. Septemberdeutet sich jedoch eine kleine Revolution an. Das israelische Start-up Unternehmen “StartCom”, welchesCert eine Zertifizierungsstelle betreibt – und kostenfreie Zertifikate anbietet-  wurde in die vertrauenswürdigen Stammzertifizierungsstellen des Windows Zertifikatsspeichers aufgenommen. Damit auch in den Internet Explorer und alle anderen Microsoft Applikationen, die den Windows Zertifikatsspeicher nutzen. StartCom bietet unter der Marke StartSSL kostenpflichtige und kostenfreie Zertifikate für unterschiedliche Zwecke an. Dieser Artikel beschäftigt sich mit kostenfreien SSL-Zertifikaten für verschlüsselte Webserververbindungen. Direkt zum Step by Step Guide

image

Die Updates der Zertifizierungsstellen werden per Windows-Update eingespielt, allerdings nicht mit den kritischen, sondern den optionalen Updates. Man kann also damit rechnen, dass beim Einsatz von Zertifikaten von StartSSL beim Gegenüber keine Fehlermeldung erscheint, wenn derjenige ein aktuell gepatchtes Windows System verwendet.

Gedanken zum Einsatzzweck

Dies für sich genommen wäre nur die halbe Miete, da sich der IE mittlerweile den Markt mit Mozilla Firefox teilt. Ein kurzer Blick in die Rootzertifikate von Firefox offenbart:

image

Holla! Auch Firefox unterstützt das Zertifikat. Klingt gut. Jetzt würde mich schon interessieren, welchen Marktanteil die beiden zusammen abdecken. Ich bin weder Marketing-, noch Statistikexperte. Eine kurze Googlelei lässt mich zum Schluss kommen, dass die beiden Webbrowser zusammen mehr als 90% im deutschen Markt abdecken. Eddy Nigg, Gründer & Certmaster von StartSSL wies mich auf diese Statistikhin. Demnach würde die Reichweite auf > 97% steigen. Die Verlässlichkeit der Zahlen kann ich nicht beurteilen. Als Sahnehäubchen haben neben Microsoft auch Apple, Google und einige Linux Distibutionen das Rootzertifikat von StartCom aufgenommen und damit die Webbrowser Safari und Chrome bestückt. Opera konnte sich zu diesem Schritt wohl noch nicht entschließen, die Anfrage läuft laut Eddy Nigg jedoch und wer weiß, wie es in ein paar Monaten aussieht… :) Klingt alles in Allem nicht schlecht!

imageNun muss jeder für sich entscheiden ob die Reichweite von StartSSL-Zertifikaten ausreicht. Als Webshop-Betreiber ist man jederzeit der Frage ausgesetzt, ob nicht zufällig derjenige, der die “Mega-Bestellung” ausgelöst hätte, zufällig Opera benutzt und ob des Warnfensters die Sache einfach abgeblasen hat – und ob diese konstruierte und diffuse Situation den Obolus eines kommerziellen Zertifikats wettmacht, muss jeder für sich selbst ausrechnen. Ich für meinen Teil würde in Verkaufsangelegenheiten u.U. auf Nummer Sicher gehen.

Wer allerdings “nur” seine Webseite absichern möchte und den potenziellen Weggang eines kleinen Prozentsatzes seiner Besucher verzichten kann, oder wer ausschließlich seinen Administrationszugang für Wordpress absichern möchte oder Exchange OWA zu veröffentlichen gedenkt – und und und: Der liegt bei StartSSL genau richtig. Bitte nochmals vergegenwärtigen: Diese Reichweite gab es bisher nicht für lau! Bemerkenswert: Selbst kostenfreie Zertifikate sind mit bis zu 10.000 Euro Schaden abgesichert, wenn er nachweislich durch eine fehlerbehaftete Authentifizierung von StartCom zustande kam.

Das System / Ablauf – Step by Step

Ich beschreibe hier den Ablauf, um ein SSL-Zertifikat für den Lernschmiede Webserver zu beantragen und einzupflegen. Der Guide richtet sich explizit an Einsteiger und soll es auch Anfängern ermöglichen, ihr erstes “richtiges” Zertifikat bei StartSSL kostenfrei zu bekommen und in Windows (& Linux ab Schritt 4) zu implementieren. Der Ablauf gliedert sich in 8 Schritte.

1. Anmelden bei der Zertifizierungsstelle und Verifikation der Mailadresse

2. Clientzertifikat sichern

3. Verifizieren der Domäne

4. Generieren der Zertifikatsanforderung mit Win IIS / Linux Apache

5. Einreichen der Zertifikatsanforderung

6. Zertifikat abholen und importieren

7. Fehlersuche

8. Abschlusstest

Ich habe bei meiner Registrierung und der Dokumentation mit unterschiedlichen Browsern gearbeitet. Von daher bitte nicht wundern, wenn sich die Browserfenster in Teilen unterscheiden. Zur Durchführung der Registrierung empfehle ich jedoch Mozilla Firefox, da im IE8 unspezifische Probleme auftraten (ging manchmal nicht weiter) und ich diese auf die Schnelle nicht aufgelöst bekam.

1. Anmelden bei der Zertifizierungsstelle und Verifikation der Mailadresse

Los geht’s. Um ein Zertifikat bei StartSSL überhaupt anfordern zu können, benötigen wir zunächst Zugriff auf den “Werkzeugkasten”, der in einem geschützen Teil der StartSSL-Webseite liegt. Ein beherzter Klick auf “Sign-up” bringt uns zum Authentifizierungsformular:

image

Nachdem das Formular korrekt ausgefüllt wurde, wartet das System auf einen Bestätigungscode. Achtung: Das hier ist keine Spielerei mehr. Wenn die Daten hier nicht korrekt eingetragen werden, wird eine spätere Überprüfung schiefgehen  oder das Zertifikat droht gesperrt zu werden.

image

Innerhalb von Minuten kommt die Bestätigungsmail an. Der Authentifizierungscode wird aus der Mail heraus-  und in das Formular der Webseite einkopiert. Die zukünftige Anmeldung am System wird nicht wie gewohnt über eine Benutzername / Passwortkombination durchgeführt, sondern ganz standesgemäß durch ein Clientauthentifizierungszertifikat. Dieses Zertifikat erhält man, sobald der Bestätigungscode eingeben wurde. Zunächst wird die Schlüssellänge für den privaten Schlüssel festgelegt:

image

Standardmäßig sind private Schlüssel mit einem Passwort gegen Missbrauch geschützt. Daher ist auch hier ein Passwort zu setzen.

image

Nach der Passworteingabe wird uns angeboten, das Zertifikat zu installieren. Dieses Zertifikat wird in den eigenen Zertifikaten der Applikation installiert und dient später dazu, den Benutzer gegenüber StartSSL ohne Passworteingabe zu authentifizieren.

image

image

image

Praktischerweise ist damit auch gleich die Mailadresse gegenüber StartSSL überprüft.

2. Clientzertifikat sichern

Jetzt wäre eine gute Gelegenheit, das Zertifikat zu exportieren, um es später auch in anderen Applikationen oder auf anderen Systemen verwenden zu können.

In den Eigenschaften der Anwendung begeben wir uns zum Zertifikatsspeicher und dort in die “Abteilung” eigene Zertifikate. Von dort aus wird der Export gestartet:

.image

Der Exportvorgang kann sich je nach Browser unterscheiden. Nachdem der Speicherplatz ausgewählt ist…

image

… benötigen wir erneut ein Passwort für den privaten Schlüssel. Das Passwort wird beim späteren manuellen Import abgefragt.

image

image

Fein. Der Import in den Internet Explorer oder einem Browser auf dem anderen System läuft übrigens genauso, nur vice versa. Das Zertifikat ist 1 Jahr lang gültig. Danach beginnt das Procedere von vorn. Das Authentifizierungszertifikat kann zwischen beliebigen Systemen hin und her kopiert werden.

ClientcertStartSSL

3. Verifizieren der Domäne

Jetzt kommen wir dem eigentlichen Spaß schon in großen Schritten näher. Bevor wir das SSL-Zertifikat beantragen können, wird seitens StartCom allerdings zuerst der Domänenname geprüft. Hierzu wird per Whoisder Domänenname auf Existenz abgefragt und erneut eine Mailvalidierung durchgeführt. Es steht der Hostmaster, der Postmaster und der Webmaster @ Domain als Mailadresse zur Verfügung. Diese 3 Adressen sollen gewährleisten, dass auch wirklich der Inhaber oder der Befugnis-Inhaber das Zertifikat beantragt. Eine echte Personenüberprüfung ist nicht vorgesehen.

Wir begeben uns also über den Werkzeugkasten zum Validations Wizzard und wählen die Domain Name Validation aus:

image

Danach wird die zu verifizierende Domäne eingetragen:

2

Wenn noch keine passende Mailadresse vorhanden ist, wäre jetzt eine gute Gelegenheit, eine anzulegen…

3

Danach läuft alles wie gehabt: StartCom prüft den Domänennamen, schickt eine Mail an die angegebene Adresse, die Mail enthält einen Verifizierungscode, der muss in das bereitgestellte Formular eingetragen werden.

So, Schnitt. Ich kann so manchen Leser schon ungeduldig mit den Füßen scharren hören, wann es denn jetzt endlich losgeht! Nun ja, trotz dem Umstand, dass sich die Überprüfung in diesem Falle “nur” auf die Mailadresse und den Domänennamen beschränkt, steht ja doch einiges dahinter. Daher muss im Vorfeld sauber gearbeitet werden.

4. Generieren der Zertifikatsanforderung mit dem IIS  (Linux/Apache Freunde bitte hier entlang…)

Für den nächsten Schritt haben wir zwei Möglichkeiten: Entweder wir erstellen eine eigene Zertifikatsanforderung und übersenden diese an die Zertifizierungsstelle oder wir überlassen die Generierung komplett der Zertifizierungsstelle. Der Unterschied ist der, dass bei der eigenen Anforderung das Schlüsselpaar und die dazugehörigen Attribute des Zertifikats vom lokalen System erstellt werden und nur der öffentliche Teil an die Zertifizierungsstelle  zur Signatur geschickt wird. Wir können auch die komplette Zertifikatsgenerierung der Zertifizierungsstelle überlassen.

Die Zertifizierungsanforderung wird in unserem Fall direkt aus der IIS7 Webserververwaltung gestartet: (Start\Verwaltung\Internetinformationsdienste-Manager)

image

Die Anforderung wird in den “Serverzertifikaten” ausgestellt.

image

Ausfüllen der Eigenschaftswerte.

3

Festlegen der Schlüssellänge. Aktuelle Literatur empfiehlt nicht mehr < 2048 Bit zu wählen.

4

Die Anforderung wird als einfache Textdatei abgespeichert.

5

Nun begeben wir uns in die Toolbox auf der StartSSL-Website.

6

Falls unser Clientzertifikat früher auf einem anderen Rechner oder einem anderen Browser genutzt wurde, müsste es zunächst importiert werden. Wir werden beim Zugriff auf die Werkzeugkiste über dieses Zertifikat authentifiziert. Das Zertifikat wie gesagt 1 Jahr gültig. Danach muss ein neues Zertifikat geordert werden.

7

5. Einreichen der Zertifikatsanforderung

Endlich ist es soweit! Jetzt kann die Zertifikatsanforderung bei StartSSL eingereicht werden. Wir begeben uns in der Toolbox zum Certificates Wizard:

8

Auswahl des Zertifikat-Typs; In unserem Fall benötigen wir die Variante Webserver.

9

Achtung, wer die Anforderung manuell einreichen möchte, muss hier “Skip” anwählen! Wer die Zertifizierungsstelle das Schlüsselpaar erstellen lassen möchte, muss hier wieder ein Passwort für den späteren Zugriff im Falle eines manuellen Imports festlegen. Wir wählen “Skip”:

10

Nun öffnen wir die Textdatei der im Schritt 4 aus dem Webserver generierten Anfrage und kopieren den gesamten Text in die Zwischenablage.

11

Den Inhalt der Zwischenablage wird wiederum in das Formularfeld von StartSSL kopiert.

12

Nun wählen wir den korrekten Namen für das Zertifikat aus. Achtung: Der Name wird später vom Browser gegengeprüft. Wenn der Name (FQDN) nicht genau so im Zertifikat steht, wie in der Adresszeile des Browsers, wird der Browser eine Warnung generieren! Wir tragen den Hostnamen / Alias des Lernschmiede Webservers ein.

image

Feuer!

17

Die Überprüfung wird innerhalb von 6 Stunden durchgeführt. Bei mir hat es eine Viertelstunde gedauert. Bei erfolgreicher Prüfung wird man per Mail benachrichtigt. Wie man im obigen Screenshot gut sehen kann, ist meine Anfrage durch das System markiert worden. Das bedeutet, dass die Bestätigung manuell vom Personal durchgewunken werden muss. Welche Anfragen für die manuelle Prüfung markiert werden, wird durch unterschiedliche Faktoren in der Summe, nicht durch eine konkrete Regel bestimmt. Allerdings finde ich in diesem Kontext eine Viertelstunde bei mir – und auch innerhalb von 6 Stunden im Allgemeinen superschnell! In der Regel wird das Zertifikat sogar “just in time” automatisch genehmigt.

6. Zertifikat abholen und importieren

Nach der Benachrichtigung begeben wir uns zurück zur Toolbox und gehen in der linken Spalte auf “Retrieve Certificate”. Aus dem Dropdownmenü wählen wird das beantragte Zertifikat aus. Das Zertifikat ist nur als Text vorhanden. Keine Sorge, das ist schon alles in Ordnung.

18

19

Jetzt kopiert man das komplette Zertifikat von der StartSSL Webseite in eine Textdatei und speichert diese als yourdomaincert.cermit der Endung *.CER ab. Ich wähle “IISCert.cer”.

image

Abschließend können wir den Request mit Hilfe des IIS-Assistenten abschließen:

image

 

7. Fehlersuche

Danach sollte das Zertifikat eigentlich in den eigenen Zertifikaten des lokalen Computerspeichers erscheinen. (Kurzes Update: Bei einem zweiten Versuch war es auch so.)  Bei mir kam allerdings folgende Fehlermeldung:

image

Böse Falle. Es scheint so, als wäre die Zertifikatsanfrage aus irgendwelchen Gründen im Eimer. Damit wird der Assistent unbrauchbar. Abhilfe schafft das Befehlszeilentool Certutil. Certutil repariert  die bestehende Anfrage und hievt das Zertifikat in den lokalen Speicher.

Als wir in Schritt 4 den Zertifikatsrequest erstellt haben, wurde ein öffentlicher und ein privater Schlüssel generiert. Der private Schlüssel war die ganze Zeit im System gespeichert. Dies gibt uns die Möglichkeit die beiden Schlawiner zusammenzuführen. Falls der private Schlüssel auch weg ist, war alles umsonst, da hilft auch kein Certutil mehr. Wir starten also eine CMD und navigieren in den Pfad, wo das heruntergeladene Zertifikat von StartSSL liegt. (Bei mir: IISCert.cer)

Dann geben wir ein:

certutil -addstore my iiscert.cer

Der Befehl sollte mit Erfolg durchgeführt werden. Falls dem so sein sollte, klicken wir doppelt auf das heruntergeladene Zertifikat von StartSSL / IISCert.cer. im Registerreiter Detail scrollen wir ganz nach unten und klicken auf “Fingerprint”

image

Wir markieren im Ergebnisfenster die komplette Zahl und kopieren den Fingerprint mit STRG+C in die Zwischenablage. Danach wechseln wir wieder in die Kommandozeile und geben ein:

certutil -repairstore my "dc 11 94 71 ec c4 62 1a b7 63 10 53 ea 83 9e 6d e0 ad 6f c8"

Nach dem ersten Anführungszeichen kann der Fingerprint komfortabel mit einem Rechtsklick –> einfügen in die Kommandozeile hineinkopiert werden. Das abschließende Anführungszeichen nicht vergessen. Das System rödelt ein wenig und sollte mit Erfolg abschließen.

In der MMC Zertifikate sollte es jetzt bei lokaler Computer so aussehen:

image

Wichtig: Beim Zertifikat muss der kleine goldene Schlüssel dabei sein. In den Eigenschaften des Zertifikats sollte “Sie besitzen einen privaten Schlüssel…” stehen, sonst ist dieses Zertifikat nichts wert!

Wenn alles gut lief, wird der komplette Satz zuallererst über das Kontextmenü des Zertifikats gesichert:

image

Unbedingt den privaten Schlüssel mit exportieren!

image

Nachdem der Assistent durchgespielt wurde, haben wir das passwortgeschützte Schlüsselpaar mit der Endung *.pfx auf der Festplatte liegen. Eine Datensicherung des Schlüsselpaares ist schwer angeraten. Die Sicherung ist geschützt aufzubewahren. Sollte irgendetwas die Hufe schwingen und der private Schlüssel ist futsch, ist das Zertifikat de facto wertlos.

Jetzt können wir das System aufräumen. Falls im Zertifikatsspeicher unter “Zertifikatsregistrierungsanforderungen” noch irgendetwas rumgammeln sollte, kann ein Großreinemachen durchgeführt werden. Ich habe auch schon gelesen, dass sich tatsächlich Zertifikate in den Benutzerspeicher verirrt hatten, die nichts dort zu suchen hatten… (NICHT das Clientauthentifizierungszertifikat von StartSSL löschen!)

Geht’s nun endlich los? Nö. Ätsch.

Der gute IIS muss trotz dem ganzen Aufwand mit dem Zertifikat bekannt gemacht werden. Wir starten also erneut den IIS-Manager und wechseln zu der Webseite, an die wir das Zertifikat anflanschen wollen. Bei mir ist dies die Default Web Site:

imageimage

Oben rechts bearbeiten wir unter “Aktionen” den Link “Bindungen”. Unter “Hinzufügen” kann jetzt eine HTTPS-Bindung, die IP-Adresse samt Port konfiguriert und im Dropdownmenü unser Zertifikat ausgewählt werden:

image

OK + Schließen.

UFF! ES IST GESCHAFFT!

8. Abschlusstest

Jetzt sollte die Seite auf HTTPS reagieren. Dazu habe ich extra eine Testseite aufgesetzt. Freunde von standardkonformen und schlankem HTML werden jetzt verzückt in die Hände klatschen: Mit Microsoft Office 2007 Word! Schauen Sie ruhig mal in den Quelltext. Viel hilft viel. Probieren wir es einmal:

https://www.lernschmiede.de/https.htm

Scheint zu klappen! Fein. Noch ein allerletzter Test auf

https://www.lernschmiede.de

Ouch! Wie!? Ah! Was sehen meine müden Äuglein da? Alles umsonst???

image

Reingelegt. Die HTTPS- Verbindung funktioniert einwandfrei. Leider hat meine Blogapplikation Wordpressdie Angewohnheit, absolute Links zu verwenden. Alle Bilder, Videos usw. sind also fest unter der URL HTTP://lernschmiede.de/data/picture.jpg verlinkt. Daher gibt der Browser völlig zurecht eine Warnung heraus, da eben nicht alle Inhalte über die sichere Verbindung angezeigt werden. Das ist aber wirklich eine völlig andere Baustelle… Das HTTPS-Zertifikat ist übrigens 1 Jahr gültig. Kurz vor Ablauf des Zertifikats schickt StartSSL eine Mail, so dass das Zertifikat rechtzeitig erneuert werden kann.

Appendix

Ich finde, StartSSL ist es wert unterstützt zu werden. StartCom bietet selbstverständlich auch andere, kostenpflichtige Zertifikate an. Erweiterte Inhaberprüfung mit grünem Balken, Wildcardzertifikate usw. Jetzt, wo die gröbste Hürde geschafft ist hätte StartCom die kostenfreien Zertifikate genauso gut abschaffen können, um den Reibach zu machen. Haben sie aber nicht. Alle anderen kommerziellen Anbieter (WoT abgesehen) haben derlei Service für Umsonst überhaupt  nie angeboten…

Für mich steht fest: Wenn einmal ein bezahltes Zertifikat fällig sein sollte (und das wird es), werde ich definitiv an StartCom / StartSSL denken. Vielleicht haben sich bis dahin sogar noch weitere Anbieter entschlossen, das Rootzertifikat aufzunehmen, was die Entscheidung sicherlich nochmals vereinfachen würde.

Comments

12 Comments on Kostenfreie Zertifikate (Teil2)

    [...] Lesen sie in Teil 2: Kostenfreie Zertifikate ohne Warnung? [...]

  1. A Small Revolution @ Get SSL™ on Di, 6th Okt 2009 04:21
  2. [...] Fritz wrote this excellent article in German how to obtain and install a server certificate from [...]

  3. Judith on Sa, 14th Nov 2009 22:53
  4. Hey, das ist nen echt klasse Artikel. Habe mich vor nem Jahr schonmal in die Richtung erkundigt, da kam ich zum Ergebnis, dass sich kostenfreie Zertifikate i.d.r. nicht lohnen.
    Das ganze Blatt hat sich mit StartCom wohl echt gewendet, hoffentlich bleibt es so attraktiv.

  5. Michael Fritz on Sa, 14th Nov 2009 23:40
  6. Hey Judith,

    ich hoffe auch :)

    Gruß,

    Michael

  7. Olaf on Fr, 4th Dez 2009 19:32
  8. Vielen Dank für diesen großartigen Artikel. Der Tipp war Gold wert.

    Schöne Grüße
    Olaf

  9. Daniel on Di, 5th Jan 2010 07:39
  10. Vielen Dank für den Artikel und die große Mühe mit den vielen Bildern!

  11. Christian R. on Fr, 26th Mrz 2010 11:41
  12. Dieser Bericht (und StartSSL) ist wirklich Gold wert, habe direkt nachdem ich hier darüber gelesen habe das ganze für mein System nachgestellt. Leider hat auch mein Blog die leidige Angewohnheit mit absoluten Pfaden zu arbeiten, weshalb ich auch die im Bericht angesprochene Meldung erhalte.

    Danke für den detailierten Bericht, wenn ich die Zeit finde, werde ich die entsprechenden ToDo-Abweichungen für ein fremdgehostetes Linux-System in meinem Blog aufzeigen und einen dicken Link hierin reinsetzte.

    Grüße

    Christian R.

  13. Christian Rachny's Lifeblog on Fr, 26th Mrz 2010 16:03
  14. Kostenfreie SSL-Zertifikate für jedermann mit StartSSL – Eine Linux-Anleitung…

    Auf der Lernschmiede habe ich von StartSSL erfahren. Das Unternehmen Startcom bietet dort für jedermann kostenlose SSL-Zertifikate an. Diese eigenen sich für Testzwecke oder meiner Meinung nach auch für den produktiven Einsatz im privaten oder kleinge…

  15. Michael Fritz on Sa, 27th Mrz 2010 00:17
  16. Moin Christian,

    eine super Idee – hab’ Dich in den Artikel reingelinkt. So kommen auch Linux/Apache Freunde auf ihre Kosten. :)

    Danke & Gruß,

    Micha

  17. Christian on Mo, 7th Jun 2010 13:09
  18. Diese Anleitung ist der absolute Hammer und Funktioniert einwandfrei. Habe es mit dem IIS 6 gemacht und nutze es für den Exchange 2007.
    Schön wäre noch wenn ich mal was finden würde über die verbindung vom Outlook 2007 zum Exch 2007 mit dieser Autodiscover geschichte, es will bei mir nicht laufen, intern geht alles super und auch unsere EiFöner funktionieren aber Outlook von Außen nicht.
    Ich wäre für jede Hilfe Dankbar.

    Nur weiter so…

  19. Steffani on Fr, 23rd Jul 2010 13:26
  20. Danke für diese ausführliche Anleitung – kannte die Einrichtung nur für Linux-Server aber IIS ist da um einiges komplizierter. Meine Anwendung läuft leider mit Exchange und ist deshalb zwangsläufig an den IIS gebunden.

    Danke
    Steffani

  21. David Löschmann on Do, 24th Nov 2011 16:47
  22. Hallo, ich war lange auf der Suche nach einer Anleitung für vertrauenswürdige SSL Zertifikate. Dank Euch hab ichs gefunden.
    Ihr seit gold wert, danke

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!