Wie Importiere ich ein Zertifikat von GoDaddy für Java Code Signing?
Ich muss in der Lage sein, zu unterzeichnen, jar-Dateien mit einem Zertifikat von einer ZERTIFIZIERUNGSSTELLE.
Ich nach der Anleitung von GoDaddy-Dokumentation, wie dies zu tun:
http://support.godaddy.com/help/article/4780/signing-java-code
Jedoch Schritt 3 erfordert den Import einer cert-Datei erhalten Sie von GoDaddy Website. Gemäß der Dokumentation, der Befehl ist:
keytool -import -trustcacerts -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.cer
Obwohl ich erfolgreich senden Sie die CSR (generiert, die von keytool) und eine Antwort bekommen, ich kann nicht für das Leben von mir herauszufinden, wie man die mycert.cer-Datei. Es gibt eine option zum herunterladen einer PEM-Datei. Aber nach dem ausführen des obigen Befehl bekomme ich die Fehlermeldung "keytool error: java.lang.Ausnahme: Unvollständige Zertifikat-Kette Antwort". Ich habe versucht, dies mehrere Male, und überprüft, aber ich bin mit der richtigen keystore. Ich habe sogar versucht die re-keying mit SSH-1 und SSH-2 das andere mal. Laut dieser person (https://stackoverflow.com/questions/20793254/signing-a-jar-the-signers-certificate-chain-is-not-validated?rq=1), konnten Sie zumindest erfolgreich importieren Sie die PEM-Datei. Aber ich bin mir nicht sicher, ob dies auch der richtige Ansatz.
GoDaddy-tech-support war absolut schrecklich. Die meisten der Techniker mit dem ich gesprochen habe, sind nicht vertraut mit keytool überhaupt, und es hat mich mehrere Anläufe, ruft Sie, bevor Sie weitergeleitet mich in Ihre SSL-Abteilung (480-505-8852), die zumindest geringfügig besser als die generelle Unterstützung.
Wenn ich mit Internet Explorer oder Firefox, ich glaube, ich kann automatisch generieren Sie einen CSR erstellen, anstatt eine durch key-tool. Dann würde ich exportieren Sie das Zertifikat über den web-browser. Aus der Lektüre verschiedener anderer online-Dokumente, ich glaube, ich könnte dann mit openssl konvertieren in das richtige format für das Dienstprogramm keytool. Ich bin mir nicht sicher über die details, wie dies funktioniert noch, aber ich sehe keine anderen Optionen.
Hat sich schon jemand erfolgreich mit dieser oder haben irgendwelche Hinweise, wie Sie Vorgehen? Ich stellte eine ähnliche Frage hier (Die Unterzeichnung eines java-applet mit einer spc-Datei von GoDaddy), aber die Antwort einfach Punkte, die mich zu GoDaddy, schlechte Dokumentation. Ich würde eine weitere CA, wenn ich könnte, aber ich habe bereits das Geld überwiesen und nicht durch die langwierige überprüfung.
InformationsquelleAutor user64141 | 2014-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Problemumgehung ist GoDaddy Kontakt und haben Sie reissue Ihrer Organisation das Zertifikat. Während das Zertifikat setup-Prozess, müssen Sie eine SHA-1-codesign-Zertifikats anstelle von SHA-2. Die option SHA-1 ist nur verfügbar, wenn Sie die Gültigkeit der Zertifikate nicht zu verlängern, um 2016 (siehe unten), so stellen Sie sicher, Sie verstehen, Ihre end-Ziel ist die Wiederherstellung des SHA-2-Zertifikat als SHA-1, damit Sie wissen, Sie verkaufen ein cert mit der richtigen Gültigkeit.
Tauschte ich meine SHA-2-Zertifikat SHA-1 heute, und GoDaddy ist Java-Code-Signing-Anweisungen funktionierte perfekt.
GoDaddy teilte mir mit Keytool können Probleme beim importieren ein Zertifikat-Antwort-Kette generiert aus Ihren SHA-2 (2048 Länge) codesign-Zertifikats. Ich zurückzuhalten, Urteil vom Keytool, da es importiert SHA-2-Zertifikate in Ordnung, wenn die GoDaddy root SHA1-cert ist lopped aus der pem-Datei per @mogsie Antwort.
GoDaddy geht mit SHA-2 automatisch, wenn es Zuschüsse codesign-Zertifikate, die bis in Jahr 2017, da wird Microsoft nicht akzeptieren, weniger als SHA-2 Anfang Januar 1, 2016, also, wenn Sie in den Markt für ein SHA-1 Zertifikat, es wird kurzfristig Gültigkeit.
Die Frage könnte gehen Weg mit einem Java-Keytool-update (ich arbeite mit der 1.6), oder wenn GoDaddy Sha256withRSA self-signed Zertifikat wird weithin vertrauenswürdigen.
sorry vollständig meine Antwort ändern aufgrund von godaddy Antwort. Ich habe versucht, überprüfen Sie die "equals" - Methode, das Prinzip-Objekt (wo die Inhaber und Emittenten verglichen werden), sollte festgestellt haben, dass der Vergleich der Schlüssel-IDS und nicht DNs.
Gut, ich habe reichlich Vorschläge auf der Verwendung von SHA-1 anstelle von sonst etwas, aber nirgends angeben, wie es zu tun. Tun Sie etwas, wenn Sie erstellen Sie das erste Schlüsselpaar? Wenn Sie den CSR? Indem Sie ein Zertifikat, das nur bis ins Jahr 2016? Wie?
Nur für die Richtigkeit, das Datum 1 Jan 2016, wenn Microsoft erfordert, dass mindestens SHA2 verwendet werden Zertifikate: social.technet.microsoft.com/wiki/contents/articles/...
Ab November, 2014, Google-Chrome-browser starten, zeigt Warnungen an Benutzer, wenn Ihre Website nutzt SHA-1. Unsere Frist ist sehr viel schneller als erwartet. Gibt es irgendwelche updates zu GoDaddy, G2 CA-server? Ist es nun das Vertrauen der Java-Truststore? garage.godaddy.com/webpro/security/...
InformationsquelleAutor Rich Ehmer
Die Antwort ist, wie erwähnt, durch Waterbear, zu Ihrem GoDaddy cert neu aufgelegt oder rekeyed, die von GoDaddy mit
SHA-1
. Die Grund ist, dass GoDaddy hat zwei CA-Server:Class 2 CA
die für die Signierung verwendetSHA-1
Zertifikate undG2 CA
die für die Signierung verwendetSHA-2
Zertifikate. Während die älterenClass 2 CA
ist das Vertrauen der Java-Truststore (und damitSHA-1 certificates
vertrauenswürdig sind), die neuereG2 CA
ist nicht, so seineSHA-2
Zertifikate sind nicht vertrauenswürdig, es sei denn, Sie manuell zu installieren, dessen root-Zertifikat (das Niederlagen der Zweck der Kauf eines cert-Teams in den ersten Platz). Hoffentlich GoDaddyG2 CA
wird das Vertrauen der Java-Truststore bald (Vor 2016!), aber bis das passiert einem GoDaddySHA-2
cert ist nicht besser als ein self-signed cert.Wir haben ein update auf dieser? Ich bin über den Kauf einer neuen Zertifikat von GoDaddy, aber Sie wollen mich auf die Verwendung von SHA-2. Der G2-server erscheint nicht in der Unterzeichner der CA noch in Java.
InformationsquelleAutor idlegravity
Da ich gern (nicht) der Prozess der Erstellung eines codesinging Zertifikat
viel, ich dachte, ich würde teilen, den Prozess, den ich ging durch, und hoffentlich, wenn
Sie benötigen für die Erstellung Ihrer eigenen, so sparen Sie einige Herzschmerz
und Schmerz .
Ich godaddy , aber ich glaube, wer die CA ist, die Schritte sollten
sehr ähnlich sein.
Diese sind die Schritte, die ich gegangen thru:
(beachten Sie, dass godaddy nicht eine Mitgestaltung Zertifikat im jks-format
und es ist ein zusätzlicher Schritt, der beteiligten zu konvertieren, dem keystore jks)
Create-keystore:
keytool -genkey -alias codesigncert -keypass DeinPasswort -keyalg RSA -
keysize 2048 -dname "cn=server1.lccc.edu, OU=Hochschule Name , O=Hochschule
Name , L=Schnecksville, ST=Pennsylvania,C=US" -
keystore /home/oracle/codesignstore/codesignstore -storepass
DeinPasswort -Gültigkeit 720 (storepass und keypass kann der gleiche sein)
Crt-Generater für godaddy
keytool -certreq -v -alias codesigncert -
Datei /home/oracle/codesignstore/codesignstore.pem -
keystore /home/oracle/codesignstore/codesignstore
mit einem editor öffnen codesignstore.pem und fügen Sie ihn in den godaddy Website
wenn godaddy überprüft die Rechnung und Sie zahlen Ihr Geld, 'in Bearbeitung'
status Weg gehen wird
gehen Sie zu Ihrem godaddy-Konto (https://mya.godaddy.com/)
klicken Sie auf mein Konto am oberen Rand der Seite (in schwarz-header)
klicken Sie auf verwalten von SSL-Zertifikaten
wählen Sie die Mitgestaltung Zertifikat aufgeführt
klicken Sie auf die Schaltfläche "Starten"
laden Sie die Datei als PEM-Datei
speichern Sie es auf Ihrem lokalen pc
öffnen Sie firefox, im Abschnitt "erweitert" wählen Sie "Zertifikate anzeigen" und die
Zertifikat aufgeführt werden sollen, die auf der verwalteten Ansichten.
markieren Sie das Zertifikat, und wählen Sie Sicherung (exportieren) und speichern Sie es als eine pkcs12 -
Datei
klicken Sie auf "Zertifikate anzeigen" am oberen Rand des Bildschirms neben dem Zertifikat
viewer ist der alias in Anführungszeichen, rechts runter, es wird das alias zu
auf dem jarsigner-Befehl unter
kopieren Sie die Datei auf dem server, wo die Mitgestaltung Zertifikat wird
verwendet: (e.g server1 /home/oracle/code_sign_cert_from_godaddy/
godaddy_pkcs12.p12) * dies ist die neue keystore -
da die keystore-hat der Typ jks und godaddy macht nicht schaffen
jks-Datei umgewandelt werden, um jks-format
konvertieren pcks12 zu jks
keytool -importkeystore -
srckeystore /home/oracle/code_sign_cert_from_godaddy/godaddy_pkcs12.
p12 -srcstoretype pkcs12 -
destkeystore /home/oracle/code_sign_cert_from_godaddy/godaddy_jks.jks
-deststoretype jks
jar-Datei-Verarbeitung:
unsign jacob.jar... kopiert habe ich die jacob.jar Datei auf einen test
directory /test_jacob und umbenannt jacob1.jar (Hinweis 760815.1)
jar-xf jacob1.jar
Auszüge in die "com -" und "META-INF" - Ordner, entfernen Sie den "META-INF"
Ordner
entfernen Sie die alte jacob1.jar
neu die jacob1.jar von der /test_jacob Verzeichnis
jar -cvf, compressed Volume file jacob1.jar *
laufen jarsigner -verify jacob1.jar, sollte zeigen, unisigned.
erstellen Sie eine text-Datei aufrufen mymanifest.txt
jar -ufm jacob1.jar mymanifest.txt (dies setzt das neue manifest-info in
die jar-Datei)..
können Sie Sie öffnen jacob1.jar mit dem entpacken jacob1.jar -d Verzeichnis, in dem
entpacken Sie aufzuhalten, um zu überprüfen, dass die mymanifest.txt die Datei ist jetzt Teil der
jar-Datei.
Zeichen jar-Datei
jarsigner -
keystore /home/oracle/code_sign_cert_from_godaddy/godaddy_jks.jks -
storepass DeinPasswort -
signedjar /home/oracle/Oracle/Middleware/Oracle_FRHome1/forms/java/tes
t_jacob/Signedjacob1.jar jacob1.jar "lehigh carbon community college
godaddy.com, inc. id" (alias kam von der firefox-Prozess oben)
- signedjar option Datei erforderlich war, ohne ihn war ich immer Fehler
Hinweis: der alias ist immer der Letzte Eintrag auf den Befehl jarsigner und
gibt es nicht –alias-option, wie es war, auf der keytool-Befehl
überprüfen jar-Datei signiert ist
jarsigner -verify Signedjacob1.jar Anzeige:
jar verified.
zeigen, was in der jar-Datei
jar -tvf Signedjacob1.jar
.SF-Datei ist insided .jar Datei, die .Die DSA-Datei wird ersetzt durch die .RSA
Datei, die auch innerhalb des .jar-Datei
aus der Ausgabe der jar -tvf Signedjacob1.jar
2721 Mo Mai 05 15:57:08 MESZ 2014 META-INF/LEHIGH_C.SF
4231 Mon May 05 15:57:08 MESZ 2014 META-INF/LEHIGH_C.RSA
Kopierte ich die Signedjacob1.jar Datei $ORACLE_HOME/forms/java
Verzeichnis und dann mit der
login auf dem weblogic-enterprise manager
Änderte ich die webutilarchive parameter aus Jacob.jar zu
Signedjacob1.jar für jede Instanz
( em >>Formulare>>web-Konfiguration >> Instanz-name >> (die erste
Eintrag der Archiv-parameter)
Beim Wechsel der jacob.jar der Signedjacob1.jar ich habe es für jedes der
mein test-Instanzen, bevor ich Tat es für die Produktion, just in case.
Stoppen und starten wls_forms und Sie sollten gut zu gehen..
InformationsquelleAutor Don Thaler
@Waterbear vielen Dank für deine Lösung dazu, wie ein SHA-1 Zertifikat anstelle von SHA-2. Das war definitiv das problem, das ich hatte. (Hätte ich dies geschrieben, darunter Ihren Kommentar, aber StackOverflow sagte, es war viel zu lange.) Ich hätte eine 3-Jahres-Zertifikat, und standardmäßig GoDaddy gibt einen SHA-2-Zertifikate ablaufen nach einem bestimmten Datum. Aber auch wenn ich re-keyed und bat um eine SHA-1, ich landete trotzdem mit einem SHA-2. Ich musste widerrufen mein Zertifikat und starten Sie dann den Prozess von vorne zu bekommen, ein SHA-1 Zertifikat. (Von vorne anfangen, ich meine GoDaddy muss wieder überprüfen Sie, Ihre Firma und Telefonnummer und all das.) Übrigens, wenn Sie widerrufen Sie Ihr Zertifikat, stellen Sie sicher, dass GoDaddy zuerst um Erlaubnis gefragt werden, weil Sie technisch gesehen nicht haben, um geben Ihnen eine Rückerstattung. Darüber hinaus war ich nicht in der Lage, eine 3-Jahres-Zertifikat, weil alles, was abläuft nach einem bestimmten Datum (2016?) müssen Sie die SHA-2 und nicht SHA-1. Ich musste weitgehend auf eine Rückerstattung für mein 3-Jahres-Zertifikat und stattdessen einen 1-Jahres-Zertifikat, um auch die SHA-1-option. Aber nachdem ich mit SHA-1, GoDaddy, Anweisungen in Ansatz#1 hat gut funktioniert. Ich würde empfehlen, tun die Generierung Ihrer CSR manuell mit dem keytool-Befehl (und nicht automatisch über einen web-browser). Später, Sie laden Sie einfach die PEM-Datei und importieren Sie Sie in die keystore mit dem keytool-Befehl. (Dies ist, was GoDaddy, beschreibt in "Methode 1" im link gepostet in Frage.)
Schließlich, wenn Sie tun müssen, um ein Zertifikat neu aufgelegt, und gehen durch diesen Prozess wieder, ich würde empfehlen, die Wahl eines anderen Unternehmens neben GoDaddy, die für die code-Signierung. Ihre tech support war absolut entsetzlich. Ihre support-Techniker gab sogar zu mir, Sie waren nicht ausgebildet. Die Stunden damit verbracht, über dieses Problem sehr ausgeglichen gesparte Geld auf der cert.
InformationsquelleAutor user64141
Erste Sache, die man ** MUSS ** die mycert.cer-Datei. Andernfalls haben Sie nicht die Möglichkeit zum import das cert.
Bekommen "lay of the land" - Was ist in der aktuellen keystore-Datei?
Wir wollen-Liste (oder zeigen), was in den keystore..
Wenn Sie aufgefordert, das Passwort, können Sie einfach drücken Sie die ENTER-Taste und es wird die Rinde etwa, dass es nicht vertrauenswürdig ist, aber für die Zweckmäßigkeit, es ist in Ordnung.
Wenn Sie wollen, um "Pumpe" die Ergebnisse in eine text-Datei..
Hinweis: der echo. tut das, was ich oben schon erwähnt habe über "EINGABETASTE drücken", so don ' T werden zu sehr an. 🙂
Andere Optionen:
Sache, die Sie müssen sehr vorsichtig sein hier und der Support wird Ihnen nicht sagen, über dieses.., Wenn Sie versuchen, importieren von anderen certs neben den bereits existierenden, müssen Sie vorsichtig sein, Sie nicht Murks das ganze. 🙂
Wenn Sie ein problem haben, können Sie natürlich löschen Sie den alias, und importieren Sie wieder..
Eines der Dinge, ich mag zu tun ist, um "Stapel" der Befehl, um sicher zu sein, dass ich die Arbeit nach unten durch die Liste.
Zum Beispiel, haben Sie von Godaddy:
Dann nehme ich jeden Befehl und setzen Sie ihn wie folgt "zu Fuß", unten auf der Liste:
Dann, betrachtet man diese Liste, wird meine version von keytool-Unterstützung jedes dieser?
Sie haben bei import-als der erste..
Ich lief einfach keytool -Hilfe-und ich sehe nicht: -import, aber nicht zu sehen -importcert
Gibt es vielleicht ein Problem gibt?
Oracle zeigt uns..
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
So, müssen Sie möglicherweise einige Anpassungen vornehmen..
Hier ist ein setup, dass ich auf unserer lokalen Apache-Tomcat-Server (Windows):
Und dann..
Hinweis: Wenn Sie dies ausführen, werden Sie nicht sehen, ob es erfolgreich ist oder nicht.
Beginnen wir hier und sehen, was die Ergebnisse sind..
InformationsquelleAutor Leptonator
Fand ich, dass von den vier Zertifikaten, die Sie von der godaddy-PEM-download, die erste ist die selbst-signiertes root-Zertifikat.
Sehen die Kette (unter unix):
Das zeigt die Resonanz auf die vier Zertifikate der Kette, die alle den Weg zur Wurzel.
Offenbar die erste ist bereits in der Java standard
cacerts
als vertrauenswürdiges root-Zertifikat. Die Tatsache, dass es in der .pem-Datei tripskeytool
.Kämpfte ich mit dem gleichen problem rekeying ein paar mal, und ich hatte Glück:
----BEGIN
zu----END
,keytool -import
auf die Datei mit die restlichen drei Zertifikate.Presto!
Ergebnis:
Vielleicht auch dieses Verhalten hat etwas mit der Tatsache zu tun, dass der root-Zertifikats-Signatur-Algorithmus ist SHA1withRSA in der Erwägung, dass die anderen Tasten sind SHA256withRSA?
Vielleicht... Aber es scheint seltsam, zu verlangen, dass alle Signaturen in einer Kette von Zertifikaten verwenden die gleichen algorithmen.
Ich habe versucht, verschiedene sigalg combos in den keystore generation und CSR-generation gar keine Wirkung. Auch habe ich gelöscht, das selbst-signierte root-Zertifikat aus dem cacerts-Datei, aber nichts verändert, also muss es nicht sein stolpern keytool.
InformationsquelleAutor mogsie
Hier ist was ich getan habe..
keytool -v -genkey -dname "CN=XXX, OU=YYY, O=ZZZ, L=CCC, ST=SSS, C=de" -alias myKey -keypass abc123 -keystore myKeystore -storepass abc123 -Gültigkeit 1096 -keyalg RSA -keysize 2048 -sigalg SHA1withRSA
keytool -certreq -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -v -alias myKey -file mycsr.pem -keystore myKeystore -storepass abc123
Anfrage abschicken (mycsr.pem) zu GoDaddy, download PEM-Datei (1b27b7d7a29a06.pem in diesem Fall).
Die heruntergeladene PEM-Datei enthält meine signiertes Zertifikat zusammen mit anderen, die in der Zertifikat-Kette. Ich fand keytool würde nicht akzeptieren, dass die PEM-Datei als heruntergeladen. Ich hatte zu entfernen, mein Zertifikat aus der heruntergeladenen Zertifikat. Ich Tat dies über Key-Store-Explorer (http://keystore-explorer.sourceforge.net/) Verwenden Sie das "Überprüfen Sie ein Zertifikat" - option, öffnen Sie die PEM-Datei erhalten von Godaddy (1b27b7d7a29a06.pem) klicken Sie auf die Ihres Zertifikats (nicht eines der anderen von GoDaddy), klicken Sie auf "PEM", klicken Sie auf "Export". Ich nannte dieses Zertifikat 1b27b7d7a29a06-mycert.pem.
Laden Sie die root - (gdroot-g2.crt) und Mittelstufe (gdig2.crt -) Zertifikate von GoDaddy (https://certs.godaddy.com/anonymous/repository.pki)
Beachten Sie, dass diese/muss man die GoDaddy G2 root-und intermediate-Zertifikate.
Nächstes installieren Sie diese Zertifikate in dieser Reihenfolge:
keytool -v -importcert -trustcacerts -keystore myKeystore -storepass abc123 -Datei gdroot-g2.crt -alias gdroot-g2
keytool -v -importcert -trustcacerts -keystore myKeystore -storepass abc123 -Datei gdig2.crt -alias gdig2
keytool -v -importcert -keystore myKeystore -storepass abc123 -alias myKey -file 1b27b7d7a29a06-mycert.pem -
jetzt können Sie melden Sie Ihre app:
jarsigner -keystore myKeystore -storepass abc123 -sigalg SHA1withRSA -digestalg SHA-1 time.jar mykey
InformationsquelleAutor Howard
Hatte ich das Zertifikat Fehler (CA nicht vertrauenswürdig ist) mit Chrome/FF java-plugin zum bereitstellen einer Anwendung, die von meinem webserver (also nicht ein java-applet). Problem war für mich gelöst, wenn das hinzufügen anderer Godaddy (intermediate) - CA-CERT meinem web-server. Ich erstellte ein ticket mit godaddy und Sie geantwortet (sehr schnell)
InformationsquelleAutor user3498059
Import der GoDaddy-bundle löst das problem:
InformationsquelleAutor jpereira
Muss ich sagen,
diese ganze Java Unterzeichnung bs zu sein scheint, eine einzigartige Methode für die Java nicht zum Absterben zu Gunsten der besseren code-Optionen.
In der Realität ich denke, es ist das töten von java. Ich würde eher eine andere Methode der Codierung
(php/flash/etc)
dann immer Java wieder.Way to go Oracle!
InformationsquelleAutor Ateraan