2013-06-19 10 views
6

Ich bin mit ein bisschen ein Problem sitzen. Ich bin damit beschäftigt, eine PHP/HTML-Website (Intranet) für unser Support-Team zu erstellen, um das Leben ein wenig einfacher zu machen, wenn Linux-Maschinen unterstützt werden.Signing .Jar Datei

Ich habe eine .jar App namens mindterm (die kostenlose Version) und möchte es als Applet auf der Website ausführen.

Allerdings muss die .jar-Datei gemäß ihrer Website signiert sein, bevor sie als Applet geladen wird, andernfalls kann sie TCP-Verbindungen nicht öffnen.

Also ich habe so viel Forschung wie ich konnte in der Zeit, die ich hatte und kam mit den jarsigner.exe und keytool.exe Dateien in der JDK-Installation zur Verfügung gestellt.

Allerdings habe ich keine Ahnung, wie man diese App zu unterzeichnen, so dass ich es tatsächlich verwenden kann.

Irgendwelche Hilfe?

Dank

+0

Ihr Problem ist nicht die Signierung, es ist das Zertifikat und private Schlüssel, den Sie brauchen.Dieses "Java code-signing-certificate" muss von einem Trust-Center erworben werden. – Robert

Antwort

13

zuerst ein Schlüsselpaar erstellen keytool verwenden.

keytool -genkey -alias somekeyname 

Dann jarsigner verwenden Sie es mit dem Schlüssel zu unterschreiben Sie gerade erstellt haben.

jarsigner /path/to/jar somekeyname 

Hinweis, müssen Sie den gleichen Alias ​​(somekeyname hier) als die, die Sie mit der Taste erstellen verwenden.

Jetzt, da das Zertifikat selbstsigniert ist, wird der Benutzer Ihres Applets aufgefordert, das Zertifikat zu bestätigen. Sobald dies der Fall ist, sollten Ihre TCP-Verbindungen funktionieren.

Da ich davon ausgehe, dass Sie das Applet nur intern in Ihrer Organisation verwenden, sollten selbstsignierte Zertifikate in Ordnung sein. Andernfalls müssen Sie für ein Zertifikat bezahlen. In diesem Fall müssen Ihre Benutzer die Zertifikate nicht nach dem ersten Mal akzeptieren (wenn sie Immer zulassen auswählen).

+0

danke für die info wird so schnell wie möglich versuchen. alles wird intern gemacht, so dass wir nicht zu viel über ein selbstsigniertes cert haben – Stroes

+0

SIE SIR ein Bier verdienen! – Stroes

+0

* "Andernfalls müssen Sie für ein Zertifikat bezahlen. In diesem Fall müssen Ihre Benutzer die Zertifikate nicht manuell akzeptieren." * Der Kauf eines Zertifikats * umgeht * die Sicherheitsdialoge nicht, es macht sie einfach hübscher und erinnert sich 'immer erlaubt'. ;) –

0

Dies ist ein etwas komplexer Bereich, und Sie müssen im Wesentlichen wissen, was Sie tun, und Sie kann für ein Signaturzertifikat echtes Geld bezahlen

The Sun Java Tutorial auch das Thema abdecken:.. http://docs.oracle.com/javase/tutorial/deployment/jar/signing.html

Wenn die Absicht ist, der Unterstützung von Menschen ein sSH-Client zu geben, könnte es bessere Lösungen seine

1

Sie können Gläser signieren mit:

Installieren Sie dieses Eclipse-Plugin

Eclipse Webstart Plugin.

Sie werden nur als "Webstart" exportieren müssen. Sie werden aufgefordert, die Gläser zu signieren.

DEMO

0

kombiniert, um die Top-Antwort mit someusefulhints vollständig unattanded Skript zu erhalten:

keytool -genkey -noprompt -alias Alias -dname "CN=Hostname, OU=OrganizationalUnit, O=Organization, L=City, S=State, C=Country" -keystore path.to.keystore -storepass password -keypass password -validity 3650 
jarsigner -keystore path.to.keystore -storepass password -keypass password -signedjar signed.jar unsigned.jar Alias