Frage

Eine einfache Frage mit einer ziemlich komplizierten Antwort:

Wie unterschreiben Sie ein Java Midlet, damit Sie ihn mit weniger Sicherheitsanforderungen auf ein Mobiltelefon laden können?

War es hilfreich?

Lösung

Erhalten Sie die erforderliche Software

  1. Java SDK (JDK) aus Sonne (Sie sollten das schon haben)
  2. Java Wireless Toolkit (WTK) auch von Sonne
  3. Optional erhalten und installieren Ameise und Antenne Damit Sie Ihren Build automatisieren können (ich würde diese dringend empfehlen)

Importieren Sie ein vorhandenes Zertifikat (wenn Sie eines haben)

  1. Wenn Sie ein Zertifikat von Verisign (oder einem anderen Anbieter) gekauft haben, müssen Sie das Zertifikat in Ihren J2SE -Keystore importieren.
  2. Versuchen Sie, den folgenden Befehl zu verwenden keytool -import -alias {myalias} -file {mycertificate} (Ich konnte dies nicht testen, da ich kein ordnungsgemäßes Zertifikat habe.)
  3. Laufen keytool -list Um Ihr neues Zertifikat zu sehen
  4. Als nächstes müssen Sie das Zertifikat exportieren, damit Sie es in Ihr Telefon importieren können
  5. Laufen keytool -export -alias {myalias} -file mycertificate.crt
  6. Importieren Sie das Zertifikat in Ihr Telefon (siehe unten für Details)

Erstellen und importieren Sie ein neues (Test-) Zertifikat

  1. Sie müssen verwenden Keytool (aus dem JDK)
  2. Ich habe den folgenden Befehl verwendet keytool -genkey -alias {myalias} -keyalg RSA -validity 365
  3. Auf diese Weise fordert Sie ein Keystore -Passwort auf, geben Sie Ihr Keystore -Kennwort (wenn Sie vorhandenen Keystore haben) oder die, die Sie verwenden möchten, ein
  4. Füllen Sie alle Eingabeaufforderungen über den Standort/Firmennamen usw. ein.
  5. Laufen keytool -list Um Ihr neues Zertifikat zu sehen
  6. Als nächstes müssen Sie das Zertifikat exportieren, damit Sie es in Ihr Telefon importieren können
  7. Laufen keytool -export -alias {myalias} -file mycertificate.crt
  8. Importieren Sie das Zertifikat in Ihr Telefon (siehe unten für Details)
C:\j2sdk1.4.2_08\bin>keytool -genkey -alias company -keyalg RSA -validity 365
Enter keystore password: password
What is your first and last name? [Unknown]: My Name
What is the name of your organizational unit? [Unknown]: company
What is the name of your organization? [Unknown]: company
What is the name of your City or Locality? [Unknown]: location
What is the name of your State or Province? [Unknown]: location2
What is the two-letter country code for this unit? [Unknown]: GB
Is CN=My Name, OU=company, O=company, L=location, ST=location2, C=GB correct? [no]: yes
Enter key password for (RETURN if same as keystore password):

Erstellen und verpacken Sie die Anwendung

  1. Verwenden javac Um Ihre MIDLET zu erstellen, die besondere Aufmerksamkeit auf Ihre Optionen für Klassenpfad und BootclassPath achten (ansonsten fällt die Vorbereitung). Ich habe auch das Ziel auf 1.1 und die Quelle auf 1.3 gesetzt
  2. Generieren Sie Ihre JAD-Datei. Die kritischen Attribute im JAD sind Midlet-Jar-url, Midlet-Jar-Größe, Midlet-Permissions Wir haben auch Midlet-Icon, Mikroedition-Konfiguration, Mikroedition-Profil, Midlet-Name, Midlet-Push-1 enthalten , Midlet-Icon, Midlet-Decription und Midlet-Version
  3. Generieren Sie die Manifest.mf-Datei basierend auf Ihrem JAD, Sie müssen Midlet-Jar-Größe entfernen und MIDlet-Jar-URL
  4. Beide Aufgaben können mit der WTKJAD -Antennenaufgabe erledigt werden
  5. Paket und vorab mit der WTKPackage -Antennenaufgabe die App vorhanden. Sie müssen die Eigenschaften von ClassPath und BootclassPath ordnungsgemäß festlegen

Unterschreiben Sie die Anwendung

  1. Unterschreiben Sie die Anwendung mithilfe jarsigner
  2. Laufen jarsigner -keystore {mykeystore} -storepass (mypassword} {myjar} {myalias}
  3. Jetzt haben Sie ein signiertes Glas, das Sie aktualisieren müssen MIDlet-Jar-Size in deinem jad
  4. Fügen Sie nun das Zertifikat dem JAD hinzu JadTool.jar Aus der WTK
  5. Laufen java -jar JadTool.jar -addcert -alias {myalias} -storepass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}
  6. Fügen Sie nun die Signatur wieder zum JAD hinzu JadTool.jar
  7. Laufen java -jar JadTool.jar -addjarsig -alias {myalias} -jarfile {myjar} -storepass {mypassword} -keypass {mypassword} -keystore {mykeystore} -inputjad {myinputjad} -outputjad {myoutputjad}

Einsatz

  1. Stellen Sie dies auf einem Webserver mit den MIME -Typen ein
  2. Sie können auch Anwendungen für Telefone bereitstellen, indem Sie das JAR und JAD über Bluetooth oder Infrarot oder ein Kabel ans Telefon senden, je nach Funktionen Ihrer Telefone. Auf Nokia -Telefonen werden die Dateien in Ihrem SMS -Posteingang angezeigt

Installieren des Zertifikats am Telefon

  1. Importieren Sie das Zertifikat in Ihr Telefon. In Windows XP SP2 kann ich dies tun, indem ich mit der rechten Maustaste auf die Datei klicke und "an Bluetooth -Gerät senden" ausgewählt wird. Sie sollten auch in der Lage sein, Dateien per Kabel oder Infra Red (IR) zu senden. NB: Ich habe sowieso nicht gefunden, ein Zertifikat auf einem Serie 40 -Telefon zu importieren
  2. Sobald das Zertifikat installiert ist, muss es für "Anwendungsinstallation" autorisiert werden. Auf meinem Telefon (Nokia 6680) befinden sich dies unter Tools-> Einstellungen-> Zertifikatverwaltung-> Vertrauenseinstellungen, ich habe alles eingeschaltet, aber ich denke, "Anwendungsinstallation" ist alles, was Sie benötigen

Allgemeine Probleme

  1. Anwendung nicht mit dem JAD installiert: Die Anwendung wird nur dann vertrauen, wenn sie mit dem JAD installiert ist. Die Anwendung wird weiterhin aus dem Glas installiert, wird jedoch nicht vertrauen.
  2. Nicht festgelegte Einstellungen für Anwendungsvertrauen: Sobald Ihre Anwendung installiert ist, müssen Sie angeben, wie viel Vertrauen sie geben sollen (sie erhält nicht standardmäßig alle Berechtigungen). Auf einem Nokia Series 60 -Telefon befinden sich diese unter der App. Manager.
  3. Root-Zertifikat fehlt am Telefon: Das Java-überprüfte Zertifikat und/oder veriSign-Zertifikate fehlen bei einigen Telefonen unter Tools-> Einstellungen-> Zertifikatverwaltung für das entsprechende Zertifikat
  4. Autorisierung fehlgeschlagen: - Es gibt eine ganze Reihe von möglichen Gründen dafür hier sind diejenigen, die mir gestoßen sind
    1. Das Zertifikat, das vom Telefon fehlt, überprüfen Sie Ihr Zertifikat und wurde als vertrauenswürdig für Anwendungsinstallationen in der Zertifikatverwaltung markiert und wurde als vertrauenswürdig gekennzeichnet.
    2. Neustart: Deinstallieren Sie die Anwendung vollständig und starten Sie Ihr Telefon neu und versuchen Sie auch, den Akku zu nehmen und auch zu sim
    3. JAD/JAR -Nichtübereinstimmung: Überprüfen Sie die Anwendungsgröße im JAD. Denken Sie daran, dass es die Anzahl der Bytes ist, die nicht die Größe auf der Festplatte ist
    4. Browser -Cache: Wenn Sie über die Luft installieren
    5. Ich habe gehört, diese Linienbrüche in der MIDlet-Permissions Kann Probleme verursachen, aber es scheint mir auf Nokia 6680/6630/6230i in Ordnung zu sein (könnte Firmware abhängig sein?)
    6. Das MIDlet-Permissions Das Attribut ist die Ursache für viele Probleme (zumal die Dokumentation häufig falsch/fehlt oder je nach Telefon unterschiedlich ist), versuchen Sie es zuerst aus, und fügen Sie gleichzeitig Berechtigungen hinzu. Einige Telefone beschweren sich über Berechtigungen, die sie nicht unterstützen, andere werden sie ignorieren
  5. In einigen frühen Nokia 6600 -Firmawares gibt es einen Fehler
  6. Zertifikat noch nicht gültig: Wenn Sie das Zertifikat selbst generiert haben
  7. Keine Zertifikatverwaltung auf Serien 40 -Telefonen, Sie können eine signierte Anwendung installieren, aber das Verhalten ist seltsam mit selbst signierten Zertifikaten
  8. Jadtool -Probleme: Ich habe keine dieser Probleme erlebt, aber viele andere Menschen haben es
    1. "Ich habe Probleme, wenn ich versuche, die Jadtool manuell zu verwenden. Ich habe eine Zertifikatskette und kann das zweite Zertifikat mit einem WTK -Jadtool nicht in die JAD -Datei hinzufügen Mit den gleichen WTK -GUI -Schnittstellen fügen sie das zweite Zertifikat korrekt hinzu. Meine Schritte:
      1. Verwenden Sie 1.4.2_06 jarsigner.exe, um Glas zu unterschreiben
      2. Verwenden Sie WTK (2,2 oder 2.3 Beta) Jadtool, um mit CertNum 1 zu addieren
      3. Wenn ich Jadtool anrufe, um mit certnum 2 das gleiche Zertifikat als Cert 1-2 hinzuzufügen, gehe ich davon aus, dass ich etwas falsch mache, da die WTK-GUI einwandfrei zu funktionieren scheint. "
    2. "Ich habe einen Beitrag in der KVM -Nachrichtengruppe zu dem Thema erhalten, in dem festgestellt wird, dass es einen Fehler in der Jadtool gibt, und der Autor behauptet, einen Fehlerbericht eingereicht und einen Patch gepostet zu haben: http://archives.java.sun.com/cgi-bin/wa?a2=ind0508&l=kvm-interest&f=&s=&p=9858 Eine interessante Notiz, die ebenfalls veröffentlicht wurde, war, dass die Cert -JAD -Parameter statisch sind. Sobald Sie sie richtig aus der WTK erhalten haben, können Sie sie statisch in das Ameisenskript einfügen. "
    3. "Ich versuche, ein Midlet für Nokia 6620 -Gerät zu unterschreiben. Ich verwende ein VeriSign -Code -Signierzertifikat, das tatsächlich zwei Zertifikate enthält (Benutzer und Zwischen CA). Ich verwende das WTK 2.2 -Signierwerkzeug. Wissen Sie, ob dieses Tool zwei unterstützt Zertifikate bei der Unterzeichnung? Die Signatur wird der JAD -Datei mit zwei Zertifikaten hinzugefügt, aber ich habe bei der Installation Sicherheitsfehler erhalten. Ich habe auf dem Gerät überprüft und es gibt verschiedene Root -Zertifikate für VeriSign, aber es fällt immer noch aus!
    4. "Wenn Sie möchten, können Sie das SprintPCS -Entwickler -Kit herunterladen, da es Dual -Certs unterstützt (http://developer.sprintpcs.com). Ich habe jedoch nie das Zertifikat für das Telefon von Nokia (6620/Cingular) gearbeitet, obwohl es auf Sprint -Handys (mit aktivierter Entwicklerrohne) funktioniert. Letztendlich habe ich nur die Dinge zum Laufen gebracht, indem ich das in diesem Blog beschriebene Zertifikat erstellte und dies am Telefon installierte. Bizarr, obwohl das Root-Zertifikat für mein wahrnotensigniertes Zertifikat * auf dem 6620-Telefon war, würde es mein Midlet nie so installieren, wie Sie denken würden. "
  9. Alte Telefone (6230/i, 6682) unterstützen X509 -Zertifikate nicht, WPKI wurde als mögliche Lösung vorgeschlagen, aber ich habe dies nicht untersucht
  10. Socket -Verbindungen können problematisch sein (http://discussion.forum.nokia.com/forum/showthread.php?t=68306 ) möglicherweise aufgrund der WAP -Infrastruktur und der von einem Betreiber bereitgestellten Dienstleistungen. HTTP ist ein viel sichereres Protokoll zu verwenden
  11. "Gehen Sie online und überprüfen Sie die Gültigkeit der Anwendung": Ja/Nein. Wenn ich auf die Schaltfläche "Schaltfläche" klicke, erhalte ich den folgenden Fehler: "Zertifikat für diese Anwendung widerrufen" und die Installation schlägt fehl. Um dies zu korrigieren, gehen Sie zu Tools -> Manager -> Menü -> Einstellungen -> Online -Zertifikatprüfung [Ein / Aus / Erforderlich] Es gibt auch eine Standardadresseinstellung. Wenn die Online -Steuereinstellung erforderlich ist, schlägt der Scheck fehl, wenn keine Standardadresse vorliegt. sehen http://discussion.forum.nokia.com/forum/showthread.php?t=71071

Vertrauensdomänen

  1. Es gibt 4 verschiedene Vertrauensdomänen im Mid P2 (Hersteller, Betreiber, vertrauenswürdige Dritte und nicht vertrauenswürdig). Vertrauenswürdige Dritte sind die einzigen Nutzung für uns. Es gibt die folgenden Optionen für mein Nokia 6680 (Vodafone UK):
  2. Netzwerkzugriff: Nicht erlaubt, fragen Sie jedes Mal, fragen Sie zum ersten Mal Messaging: Nicht erlaubt, fragen Sie jedes Mal, wenn App automatisch start: Nicht erlaubt, jedes Mal fragen, die erste Konnektivität fragen: Nicht erlaubt, jedes Mal fragen, fragen Sie sich immer zum ersten Mal, immer Multimedia erlaubt: Nicht erlaubt, fragen Sie jedes Mal, fragen Sie erstmal
  3. Diese Einstellungen werden vom Betreiber und dem Telefonhersteller definiert und variieren daher zwischen Telefon, Hersteller und Betreiber.

Ungelöste Probleme

  1. Ich habe es geschafft, das JAD mit diesem Format mit J2ME WTK -Dienstprogrammen zu unterschreiben. Bei der Versuch, es auf dem Gerät zu installieren, erhalte ich eine Meldung "Anwendungsauthentifizierung fehlgeschlagen 909".

Beispiel Jad

MIDlet-Jar-URL: MyApp.jar
MIDlet-Jar-Size: 201365
MIDlet-Name: MyApp
MIDlet-Vendor: EC1M
MicroEdition-Profile: MIDP-2.0
MicroEdition-Configuration: CLDC-1.1
MIDlet-Icon: logo.png
MIDlet-Push-1: sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,*
MIDlet-Description: MyApp MIDlet
MIDlet-Permissions: javax.microedition.io.PushRegistry,javax.microedition.io.Connector.sms...
MIDlet-Version: 1.0.67 MIDlet-1: MyApp, logo.png,net.ec1m.MyApp.midp.MyAppMIDlet
MIDlet-Certificate-1-1: MIICODCCAaECBEKqpfswDQYJKoZIhvcNAQEEBQAwYz...=
MIDlet-Jar-RSA-SHA1: EUsAch/.../hEZOsJsiCjBOhNs/3FSw4=

Probemanifest

Manifest-Version: 1.0
MIDlet-Name: MyApp  
Created-By: 1.4.2_05-b04 (Sun Microsystems Inc.)
MIDlet-Push-1: sms://:6553,net.ec1m.MyApp.midp.MyAppMIDlet,*
MIDlet-1: MyApp, logo.png, net.ec1m.MyApp.midp.MyAppMIDlet
MicroEdition-Configuration: CLDC-1.1
Ant-Version: Apache Ant 1.6.2
MIDlet-Icon: logo.png
MIDlet-Vendor: EC1M
MIDlet-Permissions: javax.microedition...
MIDlet-Version: 1.0.67
MicroEdition-Profile: MIDP-2.0
MIDlet-Description: MyApp MIDlet

Musterameisen -Build -DateiIch habe unsere gestellt EC1M Ameisenaufbaudatei Wenn Sie auf unserer Website (hoffentlich) das alles für Sie ein wenig leichter machen.Andere RessourcenDies FAQ im Nokia Forum ist eine Lektüre wert.

Andere Tipps

SCHRITT1: CSR -Anfrage erstellen, die von gestellt werden kann durch

1) Creating keystore and using that generate CSR file.
2) Perform steps given by certificate authority and download CSR and private key files.

Schritt 2: Geben Sie Ihre Informationen zur Überprüfung an die Zertifikatberechtigung.

Schritt 3: Sie erhalten ein Zertifikat für die Codesunterzeichnung.

Schritt 4: Sie müssen das Zwischenzertifikat zusammen mit dem Root -Zertifikat herunterladen.

Schritt 5: Jetzt haben Sie Ihre_domain_name.crt, intcertca.crt, trustedroot.crt

Now you need to create a chained certificate by combining all above certificates.

1) Open a text editor (such as wordpad) and paste the entire body of each certificate into one text file in the following order:

    The Primary Certificate - your_domain_name.crt
    The Intermediate Certificate - IntCertCA.crt
    The Root Certificate - TrustedRoot.crt
    Make sure to include the beginning and end tags on each certificate. The result should look like this:

    -----BEGIN CERTIFICATE----- 
    (Your Primary SSL certificate: your_domain_name.crt) 
    -----END CERTIFICATE----- 
    -----BEGIN CERTIFICATE----- 
    (Your Intermediate certificate: IntCertCA.crt) 
    -----END CERTIFICATE----- 
    -----BEGIN CERTIFICATE----- 
    (Your Root certificate: TrustedRoot.crt) 
    -----END CERTIFICATE-----

    Save the combined file as your_domain_name.pem. The .pem file is now ready to use.

Schritt6: Importieren Sie den privaten Schlüssel in Ihren your_domain_name.pem

    openssl pkcs12 -export -in your_domain_name.pem -inkey your_private_key.key -out output_file_name.p12 -name your_alias


    NOTE: PLEASE REMOVE \ FROM FOLLOWING COMMANDS AND EXECUTE ( \ IS BASICALLY COMMAND CONTINUETY )

Schritt7: Erstellen Sie Keystore aus output_file_name.p12

    keytool -importkeystore \
     -deststorepass changeit -destkeypass changeit -destkeystore your_domain_keystore.ks \
     -srckeystore output_file_name.p12 -srcstoretype PKCS12 -srcstorepass your_store_password \
     -alias your_alias

Schritt8: Hinweis: Bitte nehmen Sie die Sicherung Ihrer JAD -Datei, bevor Sie die folgenden Befehle auslösen.

    Add your certificates to your your_midlet_name.jad file.

    java -jar JadTool.jar -addcert -alias your_alias \
    -storepass your_store_password \
    -keystore your_domain_keystore.ks \
    -inputjad your_midlet_name.jad -outputjad your_midlet_name.jad      

Schritt 9: Hinweis: Bitte nehmen Sie die Sicherung Ihrer JAD -Datei, bevor Sie die folgenden Befehle auslösen.

    Sign your midlet, also use your_midlet_name.jad file generated from Step8.

    java -jar JadTool.jar -addjarsig \
    -alias your_store_password \
    -storepass your_store_password \
    -keypass your_store_password \
    -keystore your_domain_keystore.ks \
    -inputjad your_midlet_name.jad -outputjad your_midlet_name.jad
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top