Signieren von Applets: Unterschied zwischen den Versionen

Zur Navigation springen Zur Suche springen
698 Bytes hinzugefügt ,  09:59, 17. Apr. 2019
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 14: Zeile 14:
= Erstellung des Signatur-Zertifikats =
= 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.  
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 im weiteren Verlauf gezeigten Arbeitsschritte müssen glücklicherweise nur ''einmal'' durchgeführt werden, d.h. ein auf diese Weise erstelltes Zertifikat kann für die Signierung mehrerer Applets verwendet werden.  


So wirds gemacht:
So wird's gemacht:


== Erstellung des Zertifikatsschlüssels ==
== Erstellung des Zertifikatsschlüssels ==
Zeile 46: Zeile 46:
'''Zu beachten!'''
'''Zu beachten!'''


* Als Vor- und Nachname (CN) verwenden Sie in jedem Fall die Zeichenkette <nowiki>"GRP: CodeSigning"</nowiki> gefolgt von Ihrer Abteilung oder dem Namen Ihres Lehrgebiets.
* Als Vor- und Nachname (CN) verwenden '''Sie in jedem Fall die Zeichenkette ''GRP: CodeSigning''''' gefolgt vom Namen Ihrer Abteilung oder Ihres Lehrgebiets.


* Als organisatorische Einheit (OU) versenden Sie den Namen Ihrer zentralen Einrichtung oder Ihrer Fakultät.
* Als organisatorische Einheit (OU) versenden Sie den Namen Ihrer zentralen Einrichtung oder Ihrer Fakultät.
Zeile 60: Zeile 60:
== Ausstellung des Zertifikats ==
== Ausstellung des Zertifikats ==


Zur Ausstellung des Zertifikats wechseln Sie nun auf die Seite [https://pki.pca.dfn.de/fernuni-hagen-ca/cgi-bin/pub/pki?cmd=getStaticPage&name=index https://pki.pca.dfn.de/fernuni-hagen-ca].  
Zur Ausstellung des Zertifikats öffnen Sie in Ihrem Webbrowser die Seite [https://pki.pca.dfn.de/fernuni-hagen-ca-g2/pub https://pki.pca.dfn.de/fernuni-hagen-ca-g2/pub].  


* Klicken Sie auf die Karteikarte '''Serverzertifikat'''.
* Klicken Sie auf die Karteikarte '''Serverzertifikat'''.
Zeile 66: Zeile 66:
* Füllen Sie das auf dieser Seite befindliche Formular aus, und wählen Sie als '''Zertifikatsprofil''' den Eintrag '''User'''!
* 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.  
Der Ausstellungsprozess endet mit der Erstellung eines PDF-Dokuments, welches '''persönlich''' (d.h. ausgedruckt und unterschrieben) bei unserer Certification Authority (Herr Heikamp / Herr Löffler, ''Zentrum für Medien und IT, AVZ, Raum A212'') abgegeben werden muss. Dieser ändert den Eintrag User auf "Code-Signing".


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.
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 der CA-Zertifikate in den Keystore ==
Laden Sie über die Seite [https://pki.pca.dfn.de/fernuni-hagen-ca-g2/pub https://pki.pca.dfn.de/fernuni-hagen-ca-g2/pub] jeweils das Wurzelzertifikat, das DFN-PCA-Zertifikat, und das DFN-CA-Global-G2-Zertifikat einzeln als .cer Dateien herunter.
Anschließend werden die Zertifikate über den folgenden Befehl einzeln in den Keystore eingebunden:
keytool –import –alias <Name> -file <Dateipfad>.cer
Die Abfragen nach der Vertrauenswürdigkeit werden mit "Ja" beantwortet.
Erst nach diesem Schritt ist es möglich das eigene Zertifikat mit dem ausgestellten Zertifikat zu verbinden.


== Import des Zertifikats ==
== Import des Zertifikats ==


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


  keytool -import -alias ''meinZertifikat'' -trustcacerts -file ''cert.p7b''
  keytool -import -alias ''meinZertifikat'' -trustcacerts -file ''cert.p7b''
Zeile 80: Zeile 91:
= Signieren der Applet-Datei =
= 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.
* 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:
* Erstellen Sie in diesem Verzeichnis eine neue Datei ''manifest-addons'' mit den folgendem zwei Zeilen als Inhalt:


Application-Name: ''Applet-Name''
  Permissions: all-permissions
  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'' ein frei wählbarer Name, der dem Benutzer später beim Start des Applets angezeigt wird. Möglich wäre bspw. ein Eintrag wie ''Mein Applet (FernUni-signiert)''.
 
Über ''Permissions'' bestimmen Sie die Rechte-Matrix Ihres Applets. ''all-permissions'' lässt dem Applet dabei alle möglichen Freiheiten, u.a. die Möglichkeit einer Netzwerkverbindung zu externen Servern, sowie den Zugriff auf das lokale Datei-System des Rechners, auf dem es 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
Erweitern Sie nun Ihre Applet-Datei ''MeinApplet.jar'' durch die oben festgelegten Manifest-Ergänzungen


  jar ufm ''MeinApplet.jar'' manifest-addons
  jar ufm ''MeinApplet.jar'' manifest-addons


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


  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.
Das Einfügen eines Timestamps über die Option ''-tsa'' birgt den Vorteil, dass dem zum signieren benutzten Zertifikat die Gültigkeit zum Zeitpunkt der Applet-Signierung bescheinigt wird. Hierdurch 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 =
= Änderungen in der HTML-Umgebung =
Zeile 118: Zeile 130:
* Fügen Sie die Zeile
* Fügen Sie die Zeile


  <param name="permissions" value="all-permissions">
  <param name="Permissions" value="all-permissions">


in die <applet>-Umgebung ein. Der ''value''-Wert muss dabei mit der Angabe in der o.a. Datei ''manifest-addons'' identisch sein, in unserem Fall also auf ''all-permissions'' gesetzt werden.  
in die <applet>-Umgebung ein. Der ''value''-Wert muss dabei mit der Angabe in der o.a. Datei ''manifest-addons'' identisch sein, in unserem Fall also auf ''all-permissions'' gesetzt werden.  


Noch einmal im Überblick:
Das Ganze noch einmal im Überblick zusammengefasst:


  <applet code="MeinApplet.class"  
  <applet code="MeinApplet.class"  
  archive="''MeinAppletSigned.jar''"  
  archive="''MeinAppletSigned.jar''"  
  codebase="...">
  codebase="...">
  <param name="permissions" value="all-permissions">
  <param name="Permissions" value="all-permissions">
   (...)
   (...)
  </applet>
  </applet>
363

Bearbeitungen

Navigationsmenü