Direkt zum InhaltDirekt zur SucheDirekt zur Navigation
▼ Zielgruppen ▼

Humboldt-Universität zu Berlin - Computer- und Medienservice

Zertifikate für CodeSigning


Einleitung

Die Zertifizierungsinstanz der Humboldt-Universität zu Berlin stellt u.a. für Java-Webstart-Programme oder Java-Applets, die an der HU betrieben werden, CodeSigning-Zertifikate aus. Die notwendigen Schritte sind im folgenden kurz erklärt.

Wenn sie beabsichtigen CodeSigning für Windows-Programme zu machen beachten sie diese Hinweise.

Wenn sie ihr ausgestelltes CodeSigning-Zertifikat erneuern wollen, schreiben sie uns bitte eine E-Mail an pki@hu-berlin.de.

Hier finden sie weitere Informationen zu CodeSigning-Zertifikaten in der DFN-PKI.

Erzeugen eines public keys

Zunächst muss ein public key erzeugt werden. Wir verwenden den Befehl keytool aus dem bin-Verzeichnis des JDK. Am besten man legt eine neue keystore Datei an. Z.B. "meinKeystore.ks". Dabei ist "meinAlias" der Name, unter dem man auf das Schlüsselpaar später zugreifen kann.

 keytool -genkey -keyalg RSA -keystore meinKeystore.ks -alias meinAlias -keySize 2048

Das Programm erfragt mehrere Informationen. Die sind von der HU z.T. vorgegeben. Es müssen folgende Angaben gemacht werden.

 CN=Code-Signing Ihre Einrichtung,

 OU=Ihre Einrichtung,

 O=Humboldt-Universitaet zu Berlin,

 L=Berlin,

 ST=Berlin,

 C=DE

Zum Schluss stellt das Programm keytool diese Information zur Bestätigung zusammen. Man kann die Richtigkeit bestätigen oder die Angaben korrigieren.

Einreichen eines Certificate Requests bei der Zertifizierungsinstanz der HU

Die request Datei "csr.txt" bekommt man mit folgender Befehlszeile:

 keytool -certreq -keystore meinKeystore.ks -file csr.txt -alias meinAlias

Die sieht so aus:

 -----BEGIN NEW CERTIFICATE REQUEST-----

 kryptischer Text

 -----END NEW CERTIFICATE REQUEST-----

Nach der Generierung Ihres Request können Sie diesen über das Onlineinterface zur Zertifizierung an die Zertifizierungsinstanz übermitteln.
Ergänzen Sie die geforderten Angaben und wählen Ihren Request (CSR) aus. Wählen Sie als Zertifikatsprofil "Web Server" aus.

Webfrontend

Geben Sie die geforderten Informationen in die Felder des Formulars ein und wählen das entsprechende Zertifikatsprofil aus. Klicken Sie auf "Weiter".

Auf der nächsten Seite sehen Sie eine Zusammenfassung Ihrer Angaben, wenn Sie Änderungen daran vornehmen wollen, benutzen Sie bitte den Zurückbutton Ihres Browsers.

Klicken Sie auf "Bestätigen". Im nächsten Fenster klicken Sie auf "Zertifikatantrag anzeigen". Drucken Sie diesen aus.

Antrag anzeigen
 

schriftlicher Antrag und Identifizierung


Um den Request zu bearbeiten, geben Sie bitte den ausgedruckten und ergänzten Antrag in einer RA (Registration-Authority) ab und lassen sich durch ein Ausweisdokument (Personalausweis, Reisepass) identifizieren. Vermerken Sie auf dem Antrag, dass dieses Zertifikat für CodeSigning vorgesehen ist.

RA's finden Sie in den PC-Sälen am Standort Mitte, im Jacob und Wilhelm Grimm-Zentrum Geschwister-Scholl-Straße 1, 10117 Berlin, oder am Standort Adlershof, Rudower Chaussee 26 und im Raum 2'303.
 

Ausstellung des Zertifikates


Nachdem Ihr Request durch die Zertifizierungsinstanz signiert wurde, erhalten Sie eine E-Mail an die von Ihnen im Formular angebene E-Mailadresse. Darin enthalten ist das Zertifikat.
 

Installieren des Zertifikates:

E-Mail mit dem enthaltenen Zertifikat.

 Sehr geehrte Nutzerin, sehr geehrter Nutzer,

 die Bearbeitung Ihres Zertifizierungsantrags ist nun abgeschlossen.

 ...

 1. Für die CA-Zertifikate wählen Sie bitte die Seite

 https://pki.pca.dfn.de:443/hu-berlin-ca/cgi-bin/pub/pki?cmd=getStaticPage;name=index;id=2

 ....

 2. Ihr eigenes Zertifikat finden Sie im Anhang dieser Mail.

 ....

 Attachment: cert-4711.pem

Die in der E-Mail angegebene URL verweist auf eine Seite, die die Zertifikatkette der HU-CA enthält. Man muss auf das Tab "Zertifikatkette anzeigen" gehen um diese als ASCII-text zu sehen. Die drei Abschnitte

 -----BEGIN CERTIFICATE-----

 kryptischer Text

 -----END CERTIFICATE------

müssen einzeln in 3 Textdateien z.B. "c1", "c2", "c3" abgespeichert und folgendermassen importiert werden.

 keytool -import -file c1 -alias c1 -trustcacerts -keystore meinKeystore.ks

 keytool -import -file c2 -alias c2 -trustcacerts -keystore meinKeystore.ks

 keytool -import -file c3 -alias c3 -trustcacerts -keystore meinKeystore.ks

Würde man diesen Schritt auslassen, dann bekäme man im nächsten Schritt folgende Fehlermeldung:

 keytool error: java.lang.Exception: Failed to establish chain from reply

Jetzt kann man auch das in der E-Mail enthaltene (Codesigning-)Zertifikat importiern:


 keytool -import -file cert-4711.pem -alias meinAlias -trustcacerts -keystore meinKeystore.ks

Fertig.

Verwendung des Zertifikates zum signieren von Jar-Dateien:

Das Zertifikat ist in der key-store Datei "meinKeystore.ks" gespeichert und lässt sich unter dem Namen "meinAlias" aufrufen.

 jarsigner -keystore meinKeystore.ks datei.jar meinAlias

Dabei werden in der zip-file datei.jar neue Dateien im Ordner META-INF/ generiert. Um eine bestehende Signatur zu löschen müssen diese Dateien aus dem Zip-archiv entfernt werden:

 zip datei.jar -d 'META-INF/*.SF'

 zip datei.jar -d 'META-INF/*.RSF'

 zip datei.jar -d 'META-INF/*.RSA'

Nutzen des Zertifikates zum signieren von pack200-Dateien:

Es sei datei.jar eine Jar Datei. Angenommen, wir wollen eine signierte pack.gz-Datei generieren. Wir verwenden das Programm zip, (Linux, Mac, Cygwin) mit der option -d um Dateien in einem zip-Archiv zu löschen.

 pack200 --repack datei.jar

 zip datei.jar -d 'META-INF/*.SF'

 zip datei.jar -d 'META-INF/*.RSF'

 zip datei.jar -d 'META-INF/*.RSA'

 jarsigner -keystore meinKeystore.ks datei.jar meinAlias

 pack200 datei.jar.pack.gz datei.jar

Wie wird die Signatur im Client angezeigt?

Mit den hier beschriebenen Schritten wurde das Programm STRAP signiert. Hier sei kurz dargestellt, wie dies dem Programmanwender durch das Java-Webstart system automatisch bei erstmaliger Benutzung mitgeteilt wird. Man kann STRAP starten, indem man auf den Web-start-Knopf in der Navigationsleiste drückt. Auf der Web-Seite ist auch meine Email-Adresse falls Hilfestellung erwünscht. Es erscheint folgendes modale Fenster:

 [x] Always trust content from this publisher



 The digital signature has been validated by a trusted source <More information>

Wenn der Nutzer diese Meldung einmalig bestätigt, dann wird sie in Zukunft nicht mehr angezeigt werden, was in $HOME/.java/security gespeichert wird. Mit <More information> könnte sich der Nutzer die Vollständige Information ansehen:


 * The application will run without the security restrictions normally provided by Java.



 * Caution: "GRP-Code-Signing Institut fuer Biochemie" asserts that this application is safe.



 * You should only run this application if your trust "GRP-Code-Signing Institut fuer Biochemie" to make this assertion.



 * The signature was generated with a trusted certificate.

 <Certifikat Details>

Mit dem Knopf <Certifikat Details> wird die vollständige Zertifikatkette bis zur Telekom Root CA2 als Baum dargestellt.

Bei Fragen wenden Sie sich bitte an Kontakt.

Besonderer Dank geht an Dr. Christoph Gille vom Institut für Biochemie der Charité, der an der Erstellung der Doku. durch Selbstversuch mitgewirkt hat.

Mehr Informationen zu CodeSigning.