Code Signing eines JavaApplets

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Code Signing eines JavaApplets

    Moin Moin!

    haben ein kleines Problem mit einem Java Applet. Wir haben eine Java App. die wir unseren Kunden zur Verfügung stellen. Diese ist digital signiert, allerdings nicht mit einem Zertifikat von z.bSp. Verisign. Dort fängt nun auch das Problem an.

    Bei der Nachfrage zur Installation wird mein Unternehemen als nicht vertrauenswürdig im Browser angezeigt, da die Echtheit des Herausgebers nicht bestätigt werden kann (logisch, weil mit unserem selbsterzeugten Zertifikat zertifiziert). Das wollten wir ändern, und haben bei Versign eine VeriSign Java Object Signing (Class 3) Digital ID geordert. Leider hat unsere Softwareschmiede damit noch nicht gearbeitet, und kriegt es nicht voreinander die App. zu zertifzieren.

    Hat jemand mit Verisign, bzw der Zertifzierung von Applets für den Gebrauch im Internet schon Erfahrung sammeln können?
    Kann mir jemand eine kurze Anleitung schicken:

    Wo muss die csr-File erzeugt werden, dessen Inhalt an Verisign übermittelt wird?
    Was muss man mit der Antwort von Verisign tun? Sieht so aus:

    -----BEGIN CERTIFICATE-----
    skdhfklshfkshflk ....

    ... klsdahfkjlahflkjashhsdkjfh
    -----END CERTIFICATE-----

    Und wie kriegt man das Applet signiert?

    Danke und Gruß

    sik
  • Hi,

    ich habe leider noch keine Erfahrung damit, aber bin auf der Verisign Seite fündig geworden:
    http://www.verisign.com/support/code-signing-support/code-signing/digital-id.html

    Zum Ungang mit den Tools keytool und jarsigner gibts dann nochmal hier weitere Infos:
    http://www.galileocomputing.de/openbook/javainsel6/javainsel_24_004.htm#mj94cb797889e6c4e8380d735a3d5e108a

    Hier sind dann auch noch weitere Infos auf der Sun Seite:
    http://java.sun.com/docs/books/tutorial/security/sigcert/index.html

    These two lessons have much in common. In both cases, the first two steps for the code or document sender are to:
    * Create a JAR file containing the document or class file, using the jar tool.
    * Generate keys (if they don't already exist), using the keytool -genkey command.

    The next two steps are optional:
    * Use the keytool -certreq command; then send the resulting certificate signing request to a certification authority (CA) such as VeriSign.
    * Use the keytool -import command to import the CA's response.

    The next two steps are required:
    * Sign the JAR file, using the jarsigner tool and the private key generated earlier.
    * Export the public key certificate, using the keytool -export command. Then supply the signed JAR file and the certificate to the receiver.
  • Hallo d0nUt,

    der Text den Du in die Zitatbox geschrieben hast entspricht dem wie ich die Vorgehensweise verstanden habe. So hat das unsere Softwareschmiede laut eigener Aussage auch durchgeführt, sind dabei auf ein Fehler gelaufen:

    keytool error: java.security.cert.CertificateException: IOException:
    Sequence tag error

    leider werde ich nicht daraus schlau was das bedeuten soll.

    Vieleicht kannst Du mir meinen persönlichen Gedankengang nochmal bestätigen:

    1. Ich erzeuge einen "certificate signing request" (private key). Dieser wurde durch unser Softwarelieferanten erzeugt. Sieht so aus:

    -----BEGIN CERTIFICATE-----
    skdhfklshfkshflk ....

    ... klsdahfkjlahflkjashhsdkjfh
    -----END CERTIFICATE-----

    2. Den übermittle ich an einen CA (hier VeriSign).
    3. Der CA liefert mir einen entsprechenden public key, selbe Strukter wie der private key anderer Inhalt.
    4. Unser Softwarelieferant fügt den public Key in seinen keystore ein, und kann aus seinem keystore ein Zertifikat (Dateiname.cer) extrahieren. Damit signiert er dann die Javaapplikation.

    Will mir nur sicher sein, dass ich das richtig verstanden habe! :)

    Gruß sik
  • klingt wie eine Übersetzung der Verisign Seite. So hätte ich es auch verstanden.
    Habt ihr mit eurem Softwarelieferant Textdateien ausgetauscht?

    Schau dir mal diesen Thread an:
    http://forum.java.sun.com/thread.jspa?threadID=758018&messageID=4337890

    Sicher, dass keine falschen Zeilenumbrüche im Schlüssel sind?
    Schau dir mal den Cleaner aus dem letzten Posting an - vielleicht hilft der auch bei VeriSign
    http://www.dallaway.com/acad/webstart/ThawteCleaner.java
  • Das haben wir...

    ich habe eine Textdatei von einem Windows-Rechner bekommen, und auch auf einem Win-Rechner empfangen. Anders herum hat Verisign mir eine Text-Mail mit dem Antwortzertifikat geschickt. Die habe ich wiederum weitergeleitet...

    Könnten die Zeilenumbrüche sein. Guter Tipp. Ich check das mal.

    Gruß und Danke. Melde mich mit einer Antwort! :wink:
  • :evil:

    Schade das es keinen explodierenden Smilie gibt, so geht es mir gerade!

    Die Antwort vom CA kommt in folgender Form:
    ---- BEGINN CERTIFICATE ----
    ashdghadj...
    ..safdadsfgdgsdfgfdgsgsdgdsfgsg
    ---- END CERTIFICATE ----

    Wenn man jetzt den "---- BEGINN CERTIFICATE ----" und das "---- END CERTIFICATE ----" nicht mit in die Datei kopiert die vom Keytool importiert werden soll, dann kann das keytool nicht wissen wo es anfangen soll, und wo es aufhören soll und läuft auf einen Fehler. Die Beiden Einträge stellen quasi das Anfangs- und Ende-Tag des Zertifikates dar. So einfach ist das...

    Aua..

    Und hier jetzt eine Korrektur des Ablaufes für die Beantragung eines Code Signing Zertifikates für JavaApplets:

    1. Mit dem keytool erstellt man ein Schlüsselpaar.
    2. Man extrahiert den public-key (nicht den nprivaten, der verläßt nie das eigene Haus, bzw. Server) in eine csr-Datei und übermittelt Ihren (VOLLSTÄNDIGEN) Inhalt an einen CA.
    3. Dieser Antwort mit einer ähnlich aussehenden Textdatei oder -email.
    4. Man kopiert den VOLLSTÄNDIGEN INHALT der Antwort (inkl. der Kopf- und Fusszeile über und unter dem Zahlen- und-Buchstabensalat) in eine Datei.
    5. Man importiert diese erstellte oder erhaltene Datei mit dem keytool.
    6. Nun kann man eine Zertifikat aus dem eigenen keystore extrahieren, und seine Anwendungen signieren.

    Schaut mal auf thawte.com/core/process?proces…c-display-request-details vorbei.
    Dort könnte Ihr eure CSR-Datei überprüfen (zumindest ob thawte.com Sie verarbeiten kann).

    Die FAQ ist auch gut und umfangreich:
    thawte.com/ssl-digital-certifi…technical-support/keygen/

    Für Ergänzungen oder Korrekturen zu diesem Thema postet hier, oder schickt mir eine PN.

    Danke an d0nUt, so long

    sik :D