Webstart JNLP Signierung

R.Murphy

Mitglied
Hallo,

ich habe eine Java-Webstart Applikation mit Eclipse-RCP erstellt.
Ich möchte diese nun mit einem gültigem Zertifikat signieren. Dieses Zertifikat ligt mir im Format pfx und p12 vor.
Da ich beim Export nicht den storetyp angeben kann habe ich alle Jar's nach der Erstellung mit folgendem Befehl signiert: "jarsigner -storetype pkcs12 -keystore Keyfile.p12 -storepass 12345 "C:\WebServer\htdocs\Company\AppName\plugins\JarNa me.jar" Alias".
Leider kommt nach dem Ausführen immer noch die sicherheits Warnung.
Nun habe ich gelesen, dass die JNLP-Datei ebenfalls signiert werden muss.
Dazu soll sie als kopie im Main Jar als "JNLP-INF\APPLICATION.JNLP" vorhanden sein. Leder nuzte dies auch nichts.
Die JNLP auf dem Server hat einen anderen Namen, könnte dies das Problem sein?
Ich nutze javaws 1.6.0_13.

Ich währe für hinweise sehr dankbar.

Ron
 

R.Murphy

Mitglied
Hallo L-ectron-X,

danke für die schnelle Antwort.
Das ist mein erstes Webstart Projekt und Signierungs Projekt.
Schau mal in deine Manifest-Datei, ob dort die Schlüssel für jede class-Datei eingetragen sind.
Kanns Du mir das bitte genauer erklären?
Kann ich das bei Eclipse RCP einstellen, dass dies automatisch geschied?

Danke für Deine Hilfe

Ron
 

L-ectron-X

Gesperrter Benutzer
Kanns Du mir das bitte genauer erklären?
Öffne deine Jar-Datei mit einem Packprogramm z.B. Winzip, 7Zip oder Winrar. Unter Linux gibts auch passende Programme. Im Packer siehst du nun die Verzeichnisstruktur der Jar-Datei. In fast allen Jar-Dateien, die für Java-Interpreter erzeugt wurden, gibt es ein Verzeichnis META-INF. In diesem Verzeichnis liegt nun mindestens die Mainfest-Datei. Wurde die Jar-Datei signiert, findest du dort auch zwei weitere Dateien. Eine mit der Endung .sf und eine mit der Endung .dsa .
Nun kannst du noch die Manifest-Datei mit einem Texteditor öffnen und solltest dann auch eine Auflistung aller class-Dateien deines Projektes mit deren Schlüsseln sehen. Wenn das der Fall ist, ist das Jar-Archiv funktionstüchtig signiert und sollte beim Start eine Benutzerinformation (Dialog) im Browser ausgeben.

Kann ich das bei Eclipse RCP einstellen, dass dies automatisch geschied?
Nein, das passiert automatisch beim Signieren. Das kann man nicht in einer IDE einstellen.
In der FAQ findest du einen Beitrag zum Signieren.
 

R.Murphy

Mitglied
Hallo L-ectron-X,

ah ok.
Leider habe ich 55 Jar Dateien mit unzähligen Klassen.
Ich würde Tage dafür brauchen.

Gibt es keinen anderen Weg sicherzustellen, dass alle Signierungen korrekt sind?

Kann man irgendwie herausfinden welche Jars nicht identisch signiert sind?
Ich habe mit "jarsigner -verify -verbose -certs Filename.jar alias" alle Jars überprüft, in allen befindet sich meine Signierung.

Ron
 

L-ectron-X

Gesperrter Benutzer

R.Murphy

Mitglied
Hi L-ectron-X

hier das Verhalten beim Starten:
In der Java Console erhalte ich folgende Meldungen:
Reading certificates from 12393 file:/C:/xampp/htdocs/Company/Appl/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731.jar | C:\Documents and Settings\Dser\Application Data\Sun\Java\Deployment\cache\6.0\43\6838dceb-5618b489.idx
Reading certificates from 14047 file:/C:/xampp/htdocs/Company/Appl/plugins/org.eclipse.equinox.simpleconfigurator_1.0.0.v20080604.jar | C:\Documents and Settings\User\Application Data\Sun\Java\Deployment\cache\6.0\60\41efb03c-690f59f0.idx
Reading certificates from 16566 file:/C:/xampp/htdocs/Company/Appl/plugins/org.eclipse.update.configurator_3.2.201.R34x_v20080819.jar | C:\Documents and Settings\User\Application Data\Sun\Java\Deployment\cache\6.0\41\4b4a9ee9-3addaf8b.idx

msg1.jpg

msg2.jpg


Seltsam ist, dass wenn ich gleich danach noch einmal die JNLP ausführe kommen in der Konsole mehr Einträge.
Unter "Zertifikatdetails" wird nur das richtige Zertifikat angezeigt.

Ich hoffe das hilft dir bei der Ursachenforschung.

Ron
 
G

Gast2

Gast
Wenn du eine EclipseRCP Anwendung haben alle eclipse plugins schon eine signatur... Das heißt du musst vorher(am besten ein ant task) alle plugins entsignieren und danach mit deinem eigenen keystore signieren...
EclipseRCP hat aber auch eine schönes update site projekt, das du einbinden kannst um deine plugins neu auszuliefern!!!
 

L-ectron-X

Gesperrter Benutzer
Dass diese Warnungen kommen ist völlig normal.
Hast du gedacht, dass nach dem Signieren deiner Anwendung keine Warnmeldungen mehr angezeigt werden würden?
Dann könnte ja jeder Malware in Java programmieren, diese einfach selbst signieren und und der Anwender würde beim Ausführen gar nichts davon bemerken, weil keine Warnmeldung mehr angezeigt werden würde...
Bei diesen Warnmeldungen geht es darum, den Benutzer auf potenziell gefährliche Zugriffe auf sein System hinzuweisen. Der Benutzer selbst muss dann entscheiden, ob er das Programm auf seinem System starten möchte.
Unsignierte Anwendungen werfen auf der Konsole nur die AccessControlException und werden von der JVM abgebrochen.
 

R.Murphy

Mitglied
Und ich bastel mir seit Tagen einen ab.
Hast du gedacht, dass nach dem Signieren deiner Anwendung keine Warnmeldungen mehr angezeigt werden würden?
Ja, ich habe gedacht, dass wenn ich ein gültiges Zertifikat habe, diese Meldung nicht mehr angezeigt wird.
Dann könnte ja jeder Malware in Java programmieren, diese einfach selbst signieren und und der Anwender würde beim Ausführen gar nichts davon bemerken, weil keine Warnmeldung mehr angezeigt werden würde...
???Noch einmal langsam zum mitdenken:
Wenn ich ein selbst signiertes Zertifikat habe, dann wird für den Gültigkeitszeitraum (0,5 Jahre) diese Meldung angezeigt.
Wenn ich ein offizielles Zertifikat habe wird diese Meldung auch angezeigt.
Grade dann, könnte doch jeder seine Malware selbst signieren, da sowiso diese Meldung angezeigt wird, oder???
 
G

Guest2

Gast
Moin,

Wenn ich ein selbst signiertes Zertifikat habe, dann wird für den Gültigkeitszeitraum (0,5 Jahre) diese Meldung angezeigt.
Wenn ich ein offizielles Zertifikat habe wird diese Meldung auch angezeigt.

Nein, die Meldungen unterscheiden sich. Nur:

1. Eine Meldung erscheint immer.
2. Dein Zertifikat ist scheinbar nicht von einer vertrauenswürdigen CA ausgestellt.

Vergl.: http://www.java-forum.org/deployme...starten-applets-hd-zugreifen.html#post628602

Gruß,
Fancy
 

R.Murphy

Mitglied
Hi,

Dein Zertifikat ist scheinbar nicht von einer vertrauenswürdigen CA ausgestellt.
OK, ich werde das an die Kollegen die ein vertrauenswürdiges Zertifikat beschaffen sollten weitergeben.
Da kann ich ja lange weiter probieren, wenn das Zertifikat nicht von einer CA ausgestellt wurde.
Das mit der underschiedlichen Meldung war mir auch neu (Link).
embarrassed.gif


Jetzt habe ich etwas gelernt.

Mir ist zudem noch aufgefallen, dass wenn ich mit "jarsigner -verify -verbose -certs" die JARs überprüfe die Zeile [KeyUsage extension does not support code signing] erscheint.
Was bedeutet den das?

Danke

Ron
 
G

Guest2

Gast
Das bedeutet schlicht, dass Dein Zertifikat nicht zur Signatur von JAR Dateien geeignet ist. Damit Deine Signatur wirklich als gültig erkannt wird, muss das Zertifikat Code signing (OID: 1.3.6.1.5.5.7.3.3) unterstützen. Außerdem muss die ausstellende CA selbst direkt oder indirekt als vertrauenswürdige CA im Java Zertifikatspeicher vorhanden sein.

Welche das bei Deiner Java Version sind, zeigt Dir

keytool -list -v -keystore cacerts


Gruß,
Fancy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
VfL_Freak Icon einer JNLP-Datei ändern ?? Tools - Maven, Gradle, Ant & mehr 2
D Ant JAR-Ressourcen in JNLP-Datei sind nicht von demselben Zertifikat signiert Tools - Maven, Gradle, Ant & mehr 2
Guybrush Threepwood JNLP Launch-Icon fehlt Tools - Maven, Gradle, Ant & mehr 3
S Webstart Webstart einer Applikation mit einer veralteten JNLP-Datei Tools - Maven, Gradle, Ant & mehr 6
S Webstart JNLP Update Element - kein Info-Fenster über Updates? Tools - Maven, Gradle, Ant & mehr 7
A JNLP Signieren Tools - Maven, Gradle, Ant & mehr 3
S JNLP und GIF Tools - Maven, Gradle, Ant & mehr 11
jemandzehage .jnlp mit JOGL startet nicht korrekt Tools - Maven, Gradle, Ant & mehr 9
O Webstart Mit Buckminster JNLP erzeugen Tools - Maven, Gradle, Ant & mehr 5
F Webstart JNLP Problem mit LIB Tools - Maven, Gradle, Ant & mehr 3
G Webstart JNLP - AccessControlException Tools - Maven, Gradle, Ant & mehr 18
R Web Start / jnlp datei Tools - Maven, Gradle, Ant & mehr 28
Z Fehlermeldung JNLP Tools - Maven, Gradle, Ant & mehr 3
J JNLP und ein jar mit einer Access DB Tools - Maven, Gradle, Ant & mehr 4
M WebStart Verknüpfung reinstalliert sich - Fehler in JNLP? Tools - Maven, Gradle, Ant & mehr 4
T jnlp-Datei: Fehler in Zeile 0? Tools - Maven, Gradle, Ant & mehr 6
A JNLP Datei aus Application laden Tools - Maven, Gradle, Ant & mehr 4
J [Webstart] jnlp dynamisch erstellen Tools - Maven, Gradle, Ant & mehr 8
D ClassNotFound - Trotz Signierung Tools - Maven, Gradle, Ant & mehr 4
M Herausfinden, ob Zertifikat zugestimmt wurde (Signierung) Tools - Maven, Gradle, Ant & mehr 6
P Appletanzeige vor Signierung? Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben