Signieren von Applets: Unterschied zwischen den Versionen

Aus helpdesk
Zur Navigation springen Zur Suche springen
Zeile 78: Zeile 78:
erzeugt die Verbindung des neuen Zertifikats (aus der Datei ''cert.p7b'') mit dem mittlerweile bekannten Alias ''meinZertifikat''.
erzeugt die Verbindung des neuen Zertifikats (aus der Datei ''cert.p7b'') mit dem mittlerweile bekannten Alias ''meinZertifikat''.


= Signierung der Applet-Datei =
= Signieren der Applet-Datei =
 
== Erstellung der JAR-Datei ==


* Stellen Sie sicher, dass sich Ihre Applet-Datei (in unserem Beispiel (s.o.) ''MeinApplet.jar'' in einem ansonsten leeren Verzeichnis befindet.
* Stellen Sie sicher, dass sich Ihre Applet-Datei (in unserem Beispiel (s.o.) ''MeinApplet.jar'' in einem ansonsten leeren Verzeichnis befindet.
Zeile 100: Zeile 98:


  jarsigner -verbose -tsa <nowiki>http://zeitstempel.dfn.de/</nowiki> -signedjar ''MeinAppletSigned.jar'' MeinApplet.jar ''meinZertifikat''
  jarsigner -verbose -tsa <nowiki>http://zeitstempel.dfn.de/</nowiki> -signedjar ''MeinAppletSigned.jar'' MeinApplet.jar ''meinZertifikat''
Das Einfügen eines Timestamps über die Option ''-tsa'' bringt den Vorteil, dass dem zum signieren benutzte Zertifikat die Gültigkeit zum Zeitpunkt der Applet-Signierung bescheinigt wird. Durch diese Maßnahme entfällt ein evtl. später regelmäßig benötigtes <nowiki>"nachsignieren"</nowiki>. Die Bereitstellung des Timestamp übernimmt freundlicherweise der DFN-Verein als Service unter der o.a. Adresse.
= Änderungen in der HTML-Umgebung =
Ersetzen Sie auf Ihrem Server nun die Datei ''MeinApplet.jar'' durch die signierte Variante ''MeinAppletSigned.jar''.


[[Kategorie:Internet-Dienste]]
[[Kategorie:Internet-Dienste]]
[[Kategorie:Lehren_Weitere_Werkzeuge]]
[[Kategorie:Lehren_Weitere_Werkzeuge]]
[[Kategorie:Zertifikate]]
[[Kategorie:Zertifikate]]

Version vom 30. Oktober 2014, 12:15 Uhr

Einleitung

Applet-Programmierung ist eine der ursprünglichsten Möglichkeiten Interaktivität in eine HTML-Seite zu bringen. Hinter einem Applet steckt normalerweise Java-Code, der über das HTTP-Protokoll auf den Rechner des Benutzers geladen und dort ausgeführt wird. Aufgrund der mit diesem Verfahren verbundenen Risiken, wurden die Sicherheitsbestimmungen der Java Runtime Engine in den letzten Jahren immer mehr verschärft, so dass die Applet-Ausführung mittlerweile häufig an wiederholtes bestätigen von Sicherheits-Hinweisen bis hin zu manuellen Eingriffen in die Java Runtime Engine geknüpft ist.

Signierte Applets können dagegen immer noch relativ unkompliziert gestartet werden. Die folgende Beschreibung zeigt die für eine Signierung benötigten Schritte.

Liste der benötigten Zutaten

  • Die Java Standard Edition (Java SE). Die Java SE enthält die Tools keytool, jar und jarsigner.

Das Java SE gibts auf den Seiten von Oracle kostenlos zum Download.

  • Das zu signierende Applet, bspw. als MeinApplet.jar.

Erstellung des Signatur-Zertifikats

Zur Signatur des Applets wird vorab ein Sicherheits-Zertifikat benötigt, welches sich Mitarbeitende der FernUniversität über die hochschulweite Certification Authority (CA) ausstellen lassen können. Die folgenden Schritte müssen im Normalfall einmalig durchgeführt werden, d.h. das auf diese Weise erstellte Zertifikat kann für die Signierung mehrerer Applets verwendet werden.

So wirds gemacht:

Erstellung des Zertifikatsschlüssels

Setzen Sie in einem Windows Command Prompt (unter Unix auf Shell-Ebene) den folgenden Befehl ab.

keytool -genkey -keyalg rsa -alias meinZertifikat

Der Alias meinZertifikat bezeichnet dabei einen (frei wählbaren) Namen, unter dem das Zertifikat später in Ihrem lokalen Java-Zertifikats-Speicher abgelegt werden wird.

Der keytool-Befehl erzeugt eine Reihe von Abfragen, die wie im folgenden gezeigt beantwortet werden sollten.

Wie lautet Ihr Vor- und Nachname?
  [Unknown]:  GRP: CodeSigning Abt. Basisanwendungen
Wie lautet der Name Ihrer organisatorischen Einheit?
  [Unknown]:  Zentrum fuer Medien und IT
Wie lautet der Name Ihrer Organisation?
  [Unknown]:  FernUniversitaet in Hagen
Wie lautet der Name Ihrer Stadt oder Gemeinde?
  [Unknown]:  Hagen
Wie lautet der Name Ihres Bundeslands?
  [Unknown]:  Nordrhein-Westfalen    
Wie lautet der Ländercode (zwei Buchstaben) für diese Einheit?
  [Unknown]:  DE
Ist CN=GRP: CodeSigning Abt. Basisanwendungen, OU=Zentrum fuer Medien und IT, O=FernUniversitaet in Hagen, L=Hagen, 
ST=Nordrhein-Westfalen, C=DE  richtig?
  [Nein]:  Ja

Zu beachten!

  • Als Vor- und Nachname (CN) verwenden Sie in jedem Fall die Zeichenkette "GRP: CodeSigning" gefolgt von Ihrer Abteilung oder dem Namen Ihres Lehrgebiets.
  • Als organisatorische Einheit (OU) versenden Sie den Namen Ihrer zentralen Einrichtung oder Ihrer Fakultät.
  • Benutzen Sie keine Umlaute.

Erstellung der Zertifikats-Anforderung (CSR)

keytool -certreq -alias meinZertifikat -file MeinCSR.csr

generiert auf Basis des eingeführten Alias meinZertifikat die Zertifikats-Anforderung in der Datei MeinCSR.csr.

Ausstellung des Zertifikats

Zur Ausstellung des Zertifikats wechseln Sie nun auf die Seite https://pki.pca.dfn.de/fernuni-hagen-ca.

  • Klicken Sie auf die Karteikarte Serverzertifikat.
  • Füllen Sie das auf dieser Seite befindliche Formular aus, und wählen Sie als Zertifikatsprofil den Eintrag User!

Der oben beschriebene Ausstellungsprozess endet in der Erstellung eines PDF-Dokuments, welches persönlich (ausgedruckt und unterschrieben) bei unserer Certification Authority (Herr Heikamp / Herr Löffler, Zentrum für Medien und IT, AVZ, Raum A212) abgegeben werden muss.

Weisen Sie die Kollegen bei der Gelegenheit sicherheitshalber nochmal darauf hin, dass das Zertifikat für Code-Signing benötigt wird. Das Zertifikat wird Ihnen im Anschluss per E-Mail zugeschickt.

Import des Zertifikats

Der Import des ausgestellten Zertifkats in den Java-Zertifikatsspeicher ist jetzt relativ trivial.

keytool -import -alias meinZertifikat -trustcacerts -file cert.p7b

erzeugt die Verbindung des neuen Zertifikats (aus der Datei cert.p7b) mit dem mittlerweile bekannten Alias meinZertifikat.

Signieren der Applet-Datei

  • Stellen Sie sicher, dass sich Ihre Applet-Datei (in unserem Beispiel (s.o.) MeinApplet.jar in einem ansonsten leeren Verzeichnis befindet.
  • Erstellen Sie in diesem Verzeichnis eine neue Datei manifest-addons mit folgendem Inhalt:
Permissions: all-permissions
Application-Name: Applet-Name

Über Permissions bestimmen Sie die Rechte-Matrix Ihres Applets, wobei Sie sich durch die Angabe von all-permissions tatsächlich alle Rechte sichern. Diese beinhaltet u.a. die Möglichkeit einer Netzwerkverbindung zu sämtlichen Servern, als auch den Zugriff auf das lokale Datei-System des Rechners, auf dem das Applet ausgeführt wird!

Application-Name bezeichnet einen frei wählbaren Namen, der dem Benutzer beim Start des Applets angezeigt wird. Möglich wäre bspw. ein Eintrag wie Mein Applet (FernUni-signiert).

Erweitern Sie nun Ihre Applet-Datei durch die o.a. Manifest-Ergänzungen

jar ufm MeinApplet.jar manifest-addons

Als letzte Maßnahme wird das Gesamt-Paket jetzt signiert und in einer neuen Datei MeinAppletSigned.jar abgelegt.

jarsigner -verbose -tsa http://zeitstempel.dfn.de/ -signedjar MeinAppletSigned.jar MeinApplet.jar meinZertifikat

Das Einfügen eines Timestamps über die Option -tsa bringt den Vorteil, dass dem zum signieren benutzte Zertifikat die Gültigkeit zum Zeitpunkt der Applet-Signierung bescheinigt wird. Durch diese Maßnahme entfällt ein evtl. später regelmäßig benötigtes "nachsignieren". Die Bereitstellung des Timestamp übernimmt freundlicherweise der DFN-Verein als Service unter der o.a. Adresse.

Änderungen in der HTML-Umgebung

Ersetzen Sie auf Ihrem Server nun die Datei MeinApplet.jar durch die signierte Variante MeinAppletSigned.jar.