05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

412 A Anhang<br />

A.1.2 Neue Zertifikate ausstellen<br />

Als nächstes wollen wir für unsere <strong>SSL</strong>-Programme aus Kapitel 7 ein geeignetes<br />

Zertifikat erstellen. Dazu muß zunächst ein sogenannter Certificate Signing<br />

Request (CSR), also ein Zertifikatsantrag erstellt werden. Dieser CSR wird anschließend<br />

von der CA geprüft <strong>und</strong> signiert. Der signierte Antrag ist dann das<br />

gewünschte Zertifikat.<br />

Certificate Signing Request erzeugen<br />

Der Weg zu einem Zertifikatsantrag gliedert sich wieder in zwei Schritte: Als<br />

erstes wird ein neuer, geheimer Schlüssel für den Zertifikatsnehmer erzeugt<br />

<strong>und</strong> danach wird der dazu passende, in den eigentlichen Certificate Signing<br />

Request eingebettete, öffentliche Schlüssel erstellt. 5 In den Zertifikatsantrag<br />

wird der Distinguished Name des Zertifikatsnehmers als Subject eingearbeitet.<br />

Im folgenden erstellen wir in zwei Teilschritten das gewünschte Schlüsselpaar<br />

<strong>und</strong> da<strong>mit</strong> den Certificate Signing Request:<br />

$ openssl genrsa -out server-key.pem 1024<br />

Generating RSA private key, 1024 bit long modulus<br />

...++++++<br />

..................................................++++++<br />

e is 65537 (0x10001)<br />

Für unsere Beispielprogramme benötigen wir ein Server-Zertifikat, für welches<br />

der Server beim Programmstart nicht interaktiv nach einem Zertifikatspaßwort<br />

fragen soll (vgl. dazu Abschnitt 7.3.4). Wir lassen deshalb die Option<br />

-des3 aus <strong>und</strong> speichern den 1024 Bit langen Schlüssel so<strong>mit</strong> unverschlüsselt<br />

in der angegebenen Datei server-key.pem. 6<br />

Als nächstes erstellen wir den zugehörigen Zertifikatsantrag <strong>mit</strong> dem passenden<br />

öffentlichen Schlüssel:<br />

5 Ein Certificate Signing Request kann auf einem beliebigen Rechnersystem erzeugt<br />

werden. Insbesondere handelt es sich bei diesem System i. A. nicht um ein System<br />

der Zertifizierungsstelle, denn die CA sollte nicht in den Besitz des geheimen<br />

Schlüssels kommen. In unserem Beispiel kann auf diese strikte Trennung freilich<br />

verzichtet werden.<br />

6 Vorsicht: Die (inzwischen veralteten) Webbrowser von Netscape <strong>und</strong> Microsoft<br />

<strong>mit</strong> einer Versionsnummer kleiner als 4.0 können nicht <strong>mit</strong> Schlüssellängen größer<br />

als 1024 Bit umgehen. Das gilt sowohl für CA- als auch für Server-Zertifikate. Die<br />

Browser zeigen bei technisch einwandfreien Zertifikaten <strong>mit</strong> längeren Schlüsseln<br />

eine irreführende Meldung, wonach das Server-Zertifikat eine ungültige Signatur<br />

hätte oder gr<strong>und</strong>sätzlich fehlerhaft sei.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!