Comment puis-je Importer un Certificat de GoDaddy pour Java de Signature de Code?
J'ai besoin d'être en mesure de signer les fichiers jar avec un certificat auprès d'une autorité de certification.
J'en suivant les instructions à partir de GoDaddy la documentation sur la façon de le faire:
http://support.godaddy.com/help/article/4780/signing-java-code
Toutefois, l'étape 3 nécessite l'importation d'un cert fichier obtenu auprès de GoDaddy site web. Par la documentation, la commande est:
keytool -import -trustcacerts -keystore codesignstore -storepass <yourstorepwd> -alias codesigncert -file mycert.cer
Bien que j'ai réussi à soumettre la RSE (généré par keytool) et d'obtenir une réponse, je ne peux pas pour la vie de me comprendre comment obtenir le mycert.fichier cer. Il y a une option pour télécharger un fichier PEM. Mais après l'exécution de la commande ci-dessus, j'obtiens l'erreur "keytool erreur: java.lang.Exception: Incomplet certificat de la chaîne de réponse". J'ai essayé plusieurs fois, et vérifié que je suis en utilisant le bon fichier de clés. J'ai même essayé de re-ponçage à l'aide de SSH-1 seule fois, et ensuite SSH-2 les autres temps. Selon cette personne (https://stackoverflow.com/questions/20793254/signing-a-jar-the-signers-certificate-chain-is-not-validated?rq=1), ils ont au moins réussi à importer le fichier PEM. Mais je ne sais pas si c'est encore la bonne approche.
De GoDaddy support technique a été absolument terrible. La plupart des techniciens à qui j'ai parlé ne sont pas familiers avec keytool à tous, et il m'a fallu plusieurs essaie de les appeler avant de m'a transmis à leurs SSL (service de 480-505-8852), ce qui est légèrement mieux que le soutien général.
Si j'utilise Internet Explorer ou Firefox, je crois que je peut automatiquement générer un CSR au lieu d'en créer un grâce à une clé d'outil. Ensuite, j'ai exporter le certificat dans le navigateur web. À partir de la lecture de divers autres documents en ligne, je crois que je pourrais ensuite utiliser openssl pour les convertir au bon format pour keytool. Je ne suis pas sûr que sur les détails de la façon dont cela fonctionne, mais je ne vois pas d'autres options.
Quelqu'un a été un succès ou avez des conseils sur la façon de procéder? J'ai trouvé une question similaire ici (La signature d'un applet java avec une spc fichier de GoDaddy), mais la réponse tout simplement des points moi de GoDaddy pauvres de la documentation. Je voudrais utiliser un autre CA si je le pouvais, mais j'ai déjà payé de l'argent et traversé de long, fastidieux processus de vérification.
OriginalL'auteur user64141 | 2014-01-03
Vous devez vous connecter pour publier un commentaire.
La solution de contournement est de contacter GoDaddy et ont leur réémission de votre organisme de certification. Pendant le certificat processus d'installation, vous devez sélectionner un SHA-1 codesign certificat à la place de SHA-2. L'option pour sélectionner l'algorithme SHA-1 ne sera disponible que si vous avez de validité du certificat ne s'étend pas à 2016 (voir ci-dessous), de sorte assurez-vous qu'ils comprennent votre but final est de recréer votre SHA-2 certificat SHA-1, de sorte qu'ils savent de vous vendre un cert avec la bonne période de validité.
J'ai échangé ma SHA-2 cert pour un SHA-1 aujourd'hui, et GoDaddy est le Code Java de la Signature des instructions a parfaitement fonctionné.
GoDaddy m'a informé Keytool peut avoir de la difficulté à l'importation d'un certificat de réponse de la chaîne générée à partir de leur SHA-2 (2048 longueur) codesign certificat. - Je retenir de l'arrêt de Keytool depuis importations de SHA-2 certs amende lorsque le GoDaddy racine du SHA1 cert est taillé à partir du fichier pem par @mogsie de réponse.
GoDaddy va avec SHA-2 automatiquement lorsqu'elle accorde codesign certificats qui se prolonge jusqu'en 2017 parce que Microsoft n'acceptera pas moins de SHA-2 début Le 1er janvier 2016, donc si vous êtes dans le marché pour un SHA-1 certificat, il aura à court terme de validité.
Le problème peut aller loin avec un Java Keytool mise à jour (je travaillais avec 1.6), ou si de GoDaddy Sha256withRSA certificat auto-signé devient largement confiance.
désolé de changer complètement ma réponse en raison de godaddy réponse. J'ai essayé de cocher la case "équivaut à" une méthode de l'objet (où le propriétaire et les émetteurs sont comparées), aurait pensé que la comparaison serait identificateurs de clé et pas de DNs.
Eh bien, j'avais trouvé suffisamment de suggestions sur l'utilisation de SHA-1 au lieu de quoi que ce soit d'autre, mais nulle part pour spécifier comment le faire. Pensez-vous faire quelque chose lorsque vous créez la première paire de clés? Lorsque vous faites de la RSE? En demandant un certificat qui ne s'étend que jusqu'en 2016? Comment?
Juste pour précision, la Date est le 1er janvier 2016 pour quand Microsoft exige qu'au moins SHA2 être utilisé dans les certificats: social.technet.microsoft.com/wiki/contents/articles/...
À partir de novembre 2014, Google Chrome, le navigateur va commencer à montrer des avertissements aux utilisateurs si votre site utilise l'algorithme SHA-1. La date limite est beaucoup plus tôt que prévu. Existe-il des mises à jour de GoDaddy G2 serveur d'autorité de certification? Il est maintenant approuvé par le Java Truststore? garage.godaddy.com/webpro/security/...
OriginalL'auteur Rich Ehmer
La réponse, comme mentionné par Waterbear, est à votre GoDaddy cert de nouveau ou rekeyed par GoDaddy à l'aide de
SHA-1
. Le raison est que GoDaddy a deux serveurs d'autorité de certification:Class 2 CA
qui est utilisé pour la signatureSHA-1
certificats, etG2 CA
qui est utilisé pour la signatureSHA-2
certificats. Tandis que les plus âgésClass 2 CA
est approuvé par le Java Truststore (et doncSHA-1 certificates
sont de confiance), la nouvelleG2 CA
est pas, de sorte que sonSHA-2
certificats ne sont pas de confiance, sauf si vous installez manuellement son certificat racine (ce qui est contraire au but de l'achat d'un cert en premier lieu). Espérons-le, de GoDaddyG2 CA
devient approuvé par le Java Truststore bientôt (Avant 2016!), mais jusqu'à ce qu'il se passe un GoDaddySHA-2
cert est pas mieux qu'un auto-signé cert.- Nous avons une mise à jour sur ce point? Je suis sur le point d'acheter un nouveau certificat de GoDaddy, mais ils veulent me faire utiliser SHA-2. Le serveur G2 n'apparaît pas dans le Signataire autorité de certification est encore en Java.
OriginalL'auteur idlegravity
Depuis que j'ai apprécié (ou pas) le processus de création d'un codesinging certificat
beaucoup, j'ai pensé que je voudrais partager le processus, je suis allé jusqu'à, et nous espérons que lorsqu'
vous avez besoin de générer votre propre, cela va vous faire économiser de la douleur
et de la douleur .
J'ai utilisé godaddy , mais je crois que celui qui le CA est la procédure doit
être très similaires.
Ce sont les étapes que je suis passé par:
(notez que godaddy ne pas créer un codesigning certificat au format jks
et il y a une étape supplémentaire impliqué pour convertir le fichier de clés à jks)
Créer keystore:
keytool -genkey-alias codesigncert -keypass votre mot de passe -keyalg RSA -
keysize 2048 -dname "cn=server1.lccc.edu, OU=Collège Nom , O=Collège
Nom , L=Schnecksville, ST=Pennsylvanie,C=US" -
keystore /home/oracle/codesignstore/codesignstore -storepass
votre mot de passe -validité 720 (storepass et keypass peut être le même)
Generater crt pour godaddy
keytool -certreq -v -alias codesigncert -
fichier /home/oracle/codesignstore/codesignstore.pem
keystore /home/oracle/codesignstore/codesignstore
l'aide d'un éditeur open codesignstore.pem et le coller dans le godaddy site
quand godaddy vérifie le compte et vous payez votre argent le "en attente"
le statut va disparaître
accédez à votre compte godaddy (https://mya.godaddy.com/)
cliquez sur mon compte en haut de la page (dans le noir en-tête)
cliquez sur gérer les Certificats SSL
sélectionnez le codesigning certificat figurant
cliquez sur le bouton Lancer
télécharger le fichier comme un fichier PEM
l'enregistrer sur votre ordinateur local
ouvrez firefox, dans la section avancé, sélectionnez afficher les certificats, et les
certificat doit être répertorié sur la gestion de vues.
mettre en évidence le certificat et sélectionnez sauvegarder (exporter) et de l'enregistrer en tant que pkcs12
fichier
cliquez sur afficher les certificats en haut de l'écran à côté du certificat
la visionneuse est l'alias dans les guillemets, ce droit vers le bas, il sera l'alias
être utilisé sur le jarsigner de commande ci-dessous
copier le fichier sur le serveur où l'codesigning certificat va être
utilisé: e.g serveur1 /home/oracle/code_sign_cert_from_godaddy/
godaddy_pkcs12.p12) * c'est le nouveau fichier de clés
depuis le fichier de clés doit être du type jks, et godaddy ne pas créer un
jks fichier, il doit être converti en format jks
convertir pcks12 à 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
fichier jar de traitement:
unsign jacob.jar... j'ai copié le jacob.jar fichier pour un test
répertoire /test_jacob et l'a renommé jacob1.jar (note 760815.1)
jar xf jacob1.jar
extraits en "com" et "META-INF" des dossiers, supprimer le META-INF"
dossier
supprimer l'ancien jacob1.jar
recréer l'jacob1.jar à partir de l' /test_jacob répertoire
jar cvf jacob1.jar *
exécuter jarsigner -vérifier jacob1.jar, devraient montrer unisigned.
créer un fichier texte d'appel mymanifest.txt
jar-upm jacob1.jar mymanifest.txt (ce qui place le nouveau manifeste des infos sur
le fichier jar)..
vous pouvez ouvrir jacob1.jar avec le décompresser jacob1.jar -d répertoire où
décompressez sera en résidence afin de vérifier que la mymanifest.txt le fichier est maintenant une partie de la
fichier jar.
signe fichier jar
jarsigner -
keystore /home/oracle/code_sign_cert_from_godaddy/godaddy_jks.jks -
storepass votre mot de passe -
signedjar /home/oracle/Oracle/Middleware/Oracle_FRHome1/formes/java/tes
t_jacob/Signedjacob1.jar jacob1.jar "lehigh carbone de la communauté du collège
godaddy.com, inc. id" (cet alias est venu de l'firefox processus ci-dessus)
l'-signedjar fichier option a été nécessaire, sans elle, je recevais des erreurs
note l'alias est toujours la dernière entrée sur le jarsigner de commande et
il n'y a pas d'alias option qu'il y avait sur la commande keytool
vérifier le fichier jar est signé
jarsigner -vérifier Signedjacob1.jar affiche:
pot vérifiée.
montrer ce qui est dans le fichier jar
jar tvf Signedjacob1.jar
l' .SF fichier est insided l' .fichier jar, le .DSA fichier est remplacé par l' .RSA
fichier qui est aussi à l'intérieur de l' .fichier jar
à partir de la sortie de l'jar tvf Signedjacob1.jar
2721 Lun Mai 05 à 15:57:08 EDT 2014 META-INF/LEHIGH_C.SF
4231 Lun Mai 05 à 15:57:08 EDT 2014 META-INF/LEHIGH_C.RSA
J'ai copié le Signedjacob1.jar fichier dans le répertoire $ORACLE_HOME/formes/java
directory, puis à l'aide de la
de connexion à la weblogic enterprise manager
J'ai changé le webutilarchive paramètre de Jacob.jar pour
Signedjacob1.jar pour chaque instance
( em >>les formulaires>>web de configuration >> nom de l'instance >> (la première
entrée doit être de l'archive paramètre)
Lors de la modification de la jacob.jar à l'Signedjacob1.jar je l'ai fait pour chacun de
mon instances de test avant que je l'ai fait pour la production, juste au cas où.
Arrêter et démarrer wls_forms et vous devriez être bon d'aller..
OriginalL'auteur Don Thaler
@Waterbear Merci beaucoup pour votre solution sur l'obtention d'un SHA-1 certificat à la place de SHA-2. Ce fut certainement le problème que j'ai. (Je l'aurais posté ce dessous de votre commentaire, mais StackOverflow a dit que c'était trop long.) J'avais pris 3 ans certificat, et par défaut, GoDaddy donne un SHA-2 pour les certificats qui expirent après une certaine date. Cependant, même quand je re-saisies et ont demandé un SHA-1, j'ai toujours fini avec un SHA-2. J'ai dû révoquer mon certificat et ensuite démarrer le processus à partir de zéro pour obtenir un SHA-1 certificat. (En partant de zéro, je veux dire GoDaddy doit nouveau vérifier votre société et le numéro de téléphone et tout ça.) Par ailleurs, si vous ne révoquer votre certificat, assurez-vous de demander GoDaddy pour permission d'abord parce que techniquement ils n'ont pas à vous donner un remboursement. En outre, je n'étais pas en mesure d'obtenir en 3 ans certificat parce que tout ce qui vient à échéance après une certaine date (2016?) doit être SHA-2 et non pas de l'algorithme SHA-1. En gros, j'ai eu pour obtenir un remboursement pour mes 3 ans à un certificat et d'obtenir un lieu de 1 an certificat à même le SHA-1. Mais après avec l'algorithme SHA-1, GoDaddy les instructions de l'approche n ° 1 a bien fonctionné. Je recommanderais de faire générer votre CSR manuellement à l'aide de la commande keytool (au lieu de automatique via un navigateur web). Plus tard, il vous suffit de télécharger le fichier PEM et de l'importer dans le fichier de clés à l'aide de la commande keytool. (C'est ce que GoDaddy est décrit dans l'approche "1" dans le lien affiché dans la question.)
Enfin, si vous n'avez pas à avoir un certificat réédité, et de passer par ce processus encore une fois, je vous recommande fortement de choisir une autre compagnie en plus de GoDaddy pour la signature de code. Leur support technique est absolument horribles. Leurs techniciens d'assistance même m'a avoué qu'ils n'étaient pas formés à cela. Les heures passées sur cette question largement couvert tout l'argent économisé sur le cert.
OriginalL'auteur user64141
Première chose, vous * * * * la mycert.fichier cer. Sinon, vous n'avez pas la possibilité d'importer le cert.
Obtenir une "configuration de la terre" - qu'est-Ce que dans le courant de fichier de magasin de clés?
Nous voulons la liste (ou montrer) qu'est-ce que dans le keystore..
Si elle vous invite à entrer le mot de passe, vous pouvez appuyez simplement sur la touche ENTRÉE et il va écorce de ne pas être digne de confiance, mais pour l'opportunisme, c'est bien.
Si vous voulez "pompe" les résultats dans un fichier texte..
Remarque: l'echo. ne comme ce que j'ai déjà mentionné à propos de "appuyez sur ENTER" afin de ne pas devenir trop attaché à cela. 🙂
Autres options:
Chose que vous devez être très prudent d'ici et de Soutien ne sera pas vous parler de cette.. Si vous essayez d'importer d'autres certs aux côtés de ceux déjà existants, vous devez être prudent, vous n'avez pas bousiller l'ensemble de la chose. 🙂
Si vous avez un problème de sûr, vous pouvez supprimer l'alias et de les importer à nouveau..
L'une des choses que j'aime faire, c'est de la "pile" de la commande pour être sûr que je le travail vers le bas dans la liste.
Par exemple, vous avez de Godaddy:
Alors, je profite de chaque commande et de le configurer comme suit pour "marcher" en bas de la liste:
Puis, en regardant cette liste, ma version de l'utilitaire keytool l'appui de chacun de ces?
Vous avez d'importation comme la première fois..
J'ai juste couru keytool -aide et je ne vois pas: -à l'importation, mais ne voyez -importcert
Il y a peut-être un problème là?
Oracle nous montre..
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
Ainsi, vous pouvez avoir à faire quelques ajustements..
Voici celle que j'ai le programme d'installation sur nos serveurs Apache Tomcat (Windows):
Et puis..
Remarque: Lorsque vous exécutez cette opération, vous ne verrez pas si c'est réussi ou pas.
Nous allons commencer ici et voir ce que les résultats sont..
OriginalL'auteur Leptonator
J'ai trouvé que les quatre certificats que vous obtenez de la godaddy PEM téléchargement, la première est l'auto-signé le certificat racine.
Pour voir la chaîne (sur unix):
La réponse montre les quatre certificats qui composent la chaîne, tout le chemin à la racine.
Apparemment le premier est déjà dans la norme Java
cacerts
que le certificat racine de confiance. Le fait qu'il est dans l' .fichier pem voyageskeytool
.J'ai lutté avec le même problème à ressaisir un peu de temps, et j'ai eu de la chance:
----BEGIN
à----END
,keytool -import
sur le fichier contenant les trois autres certificats.Presto!
Résultat:
Peut-être que ce comportement a quelque chose à voir avec le fait que le certificat racine de l'algorithme de signature est SHA1withRSA tandis que les autres touches sont SHA256withRSA?
Peut-être... Mais il ne semble pas étrange d'exiger que toutes les signatures dans une chaîne de certificats d'utiliser les mêmes algorithmes.
J'ai essayé plusieurs sigalg combos dans le keystore de la génération et de la génération de CSR ou pas d'effet. Aussi j'ai supprimé l'auto-signé le certificat racine du fichier cacerts, mais cela n'a rien changé, donc il ne faut pas ruiner keytool.
OriginalL'auteur mogsie
Voici ce que j'ai fait..
keytool -v -genkey -dname "CN=XXX, OU=YYY, O=ZZZ, L=CCC, ST=SSS, C=US" -alias maclé -keypass abc123 -keystore myKeystore -storepass abc123 -validité 1096-keyalg RSA -keysize 2048 -sigalg SHA1withRSA
keytool -certreq -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -v -alias maclé -fichier mycsr.pem -keystore myKeystore -storepass abc123
Présenter la demande (mycsr.pem) de GoDaddy, télécharger le fichier PEM (1b27b7d7a29a06.pem dans ce cas).
Téléchargé le fichier PEM contient mon certificat signé, avec d'autres, dans la chaîne de certificats. J'ai trouvé keytool ne serait pas accepter le fichier PEM comme téléchargement. J'ai dû retirer mon certificat de certificat téléchargé. Je l'ai fait via le Magasin de Clés Explorer (http://keystore-explorer.sourceforge.net/) Utiliser le "Examiner d'un Certificat" option, ouvrez le fichier PEM reçu de Godaddy (1b27b7d7a29a06.pem) cliquez sur le votre certificat (pas les uns les autres à partir de GoDaddy), cliquez sur "PEM", cliquez sur "Exporter". J'ai nommé ce certificat 1b27b7d7a29a06-mycert.pem.
Télécharger la racine (gdroot-g2.crt) et intermédiaire (gdig2.crt) certificats de GoDaddy (https://certs.godaddy.com/anonymous/repository.pki)
Noter que ce sont/il faut utiliser la GoDaddy G2 racine et certificats intermédiaires.
Suivant l'installation de ces certificats dans cet ordre:
keytool -v -importcert -trustcacerts -keystore myKeystore -storepass abc123 -fichier gdroot-g2.crt -alias gdroot-g2
keytool -v -importcert -trustcacerts -keystore myKeystore -storepass abc123 -fichier gdig2.crt -alias gdig2
keytool -v -importcert -keystore myKeystore -storepass abc123 -alias maclé -fichier 1b27b7d7a29a06-mycert.pem
maintenant vous pouvez vous connecter à votre application:
jarsigner -keystore myKeystore -storepass abc123 -sigalg SHA1withRSA -digestalg SHA-1 time.jar maclé
OriginalL'auteur Howard
J'ai eu l'erreur de certificat (CA fait pas confiance) à l'aide de Chrome/FF plugin java pour déployer une application à partir de mon serveur (donc pas d'une applet java). Le problème a été résolu pour moi lors de l'ajout d'autres Godaddy (intermédiaire) CA certs mon serveur web. J'ai créé un ticket avec godaddy et ils ont répondu (assez rapidement)
OriginalL'auteur user3498059
de l'importation de la GoDaddy bundle de résoudre le problème:
OriginalL'auteur jpereira
Que j'ai à dire,
cet ensemble de Java signature bs semble être une méthode singulière pour Java pas à mourir en faveur d'une meilleure options de code.
En réalité, je pense qu'il est en train de tuer java. Je préfère utiliser une autre méthode de codage
(php/flash/etc)
jamais utiliser Java de nouveau.Way to go Oracle!
OriginalL'auteur Ateraan