J'ai une hangar charge des certificats 'aps_developer_identity.cer' exportés depuis le portail iPhone Developer. Ils ont tous été créés en utilisant la même demande de signature de certificat et (par conséquent) la même clé privée. Si j'exporte juste la clé privée de la Key Chain Apple, il est alors possible de prendre la clé privée et 'aps_developer_identity.cer' et d'utiliser openssl pour créer un certificat p12/pkcs # 12 fusionné que je peux utiliser sur mon serveur (Windows) . Pour être clair, je sais comment obtenir un p12 fusionné à partir de la chaîne principale en exportant à la fois la clé privée et le certificat, mais je veux supprimer tous les clics et les saisies de souris supplémentaires si je le peux.aps_developer_identity.cer à p12 sans avoir à exporter à partir de Key Chain?
Répondre
J'ai réussi à résoudre ce problème, il suffit de l'emballer dans un script shell et c'est bon à faire. Je suppose que vous avez téléchargé et renommé votre certificat 'apple_developer_identity.cer', ici j'utilise 'test.cer', et que vous avez également exporté votre clé de développeur de votre trousseau, dans l'exemple ci-dessous nommé 'private_dev_key.p12'.
#convert *.cer (der format) to pem
openssl x509 -in test.cer -inform DER -out test.pem -outform PEM
#convert p12 private key to pem (requires the input of a minimum 4 char password)
openssl pkcs12 -nocerts -out private_dev_key.pem -in private_dev_key.p12
# if you want remove password from the private key
openssl rsa -out private_key_noenc.pem -in private_key.pem
#take the certificate and the key (with or without password) and create a PKCS#12 format file
openssl pkcs12 -export -in test.pem -inkey private_key_noenc.pem -certfile _CertificateSigningRequest.certSigningRequest -name "test" -out test.p12
NOTE: Si vous pensez que tout cela un peu longue haleine pour obtenir ce qui peut être fait en quelques clics de souris et la saisie du nom d'un fichier, puis considérer le cas où vous avez 20 Apps que vous vouloir activer pour les notifications. Chaque application dispose d'un certificat de développement et de production, qui expire respectivement dans 4 et 12 mois. C'est un travail très ennuyeux et sujet aux erreurs ...
D'où vient le "_CertificateSigningRequest.certSigningRequest"?Je me souviens avoir eu ce fichier une fois au tout début lors de la création d'un cert de développement O_o –
Il y a des instructions détaillées sur la façon de créer le CSR ici: http://jainmarket.blogspot.com/2009/11/generate-apple-push-notification .html J'ai ajouté le trait de soulignement au mien parce que je garde dans le même dossier que tous mes autres certs et ainsi c'est le premier dans la liste ... – withakay
Le problème _CertificateSigningRequest.certSigningRequest est absolument peu clair et doit être expliqué. Le lien ne précise pas cela. Je sais comment en produire un avec le trousseau mais je reçois constamment l'erreur "Aucun certificat ne correspond à la clé privée" quand je l'utilise dans le script ci-dessus ... pourquoi? exactement ce que certSigningRequest est mentionné dans ce qui précède? – Zigglzworth
Un travail impressionnant ici. Merci pour l'aide réelle les gars. J'ai laissé tomber dans mon script shell ci-dessous qui peut aider les autres. J'ai plusieurs des clés à gérer et je voulais un script aussi. Ce script affichera des noms statiques pour les fichiers de sortie (bien que cela soit simple à modifier).
J'espère que ça aide quelqu'un d'autre.
exemple d'utilisation (en supposant le nom du script):
$ . thisScript request_file.cer priv_key.p12 aps_dev.cer
Le script:
if [ $# -ne 3 ]
then
echo "Error in $0 - Invalid Argument Count"
echo "Syntax: $0 request_cer_file p12_file app_cer_file output_filename"
echo " - request_cer_file is the request file you sent to apple"
echo " - p12_file is found in your keychain (it's the private key)"
echo " - app_cer_file is found on App ID screen from Apple"
else
reqFile=$1
p12File=$2
cerFile=$3
certPEM='apn_cert.pem'
pKeyPEM='apn_pkey.pem'
pKeyNoEncPEM='apn_pkey_noenc.pem'
p12FileOut='apn_cert_key.p12'
# remove old
rm $certPEM
rm $pKeyPEM
rm $pKeyNoEncPEM
rm $p12FileOut
#convert *.cer (der format) to pem
openssl x509 -in $cerFile -inform DER -out $certPEM -outform PEM
#convert p12 private key to pem (requires the input of a minimum 4 char password)
openssl pkcs12 -nocerts -out $pKeyPEM -in $p12File
# if you want remove password from the private key
openssl rsa -out $pKeyNoEncPEM -in $pKeyPEM
#take the certificate and the key (with or without password) and create a PKCS#12 format file
openssl pkcs12 -export -in $certPEM -inkey $pKeyNoEncPEM -certfile $reqFile -name "apn_identity" -out $p12FileOut
#
#
# If all things worked then the following should work as a test
# openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apn_cert.pem -key apn_pkey_noenc.pem
#
#
echo "Looks like everything was successful"
echo "Test command:"
echo "openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apn_cert.pem -key apn_pkey_noenc.pem"
echo
fi
Merci. C'était extrêmement utile. –
Vous pouvez faire P12/PKCS # 12 certificat directement dans le trousseau. Pas besoin d'exécuter une commande.
cliquez sur votre 1.Double fichier cert développeur/production téléchargé à partir du site dev Apple. (Il va être ajouté dans le trousseau)
2.I suppose que vous avez le fichier .p12 que vous avez obtenu d'exporter la clé privée
3.Accédez à l'onglet Mon certificat sous le trousseau.
Cliquez simplement sur votre dev/certificat prod pour APN.it devrait montrer la clé privée associée à
4.Right cliquez et le certificat d'exportation dans le format .p12
fichier final des thats p12 !!
Je ne pense pas que vous avez lu la question avant de poster cette réponse. OP déclare clairement qu'ils ne veulent pas utiliser Keychain. – Jonathan
- 1. Exporter vers Excel à partir d'un répéteur?
- 2. Comment exécuter runonce sans avoir à se connecter à l'administrateur
- 3. Exporter vers Excel à partir de Crystal Reports sans en-têtes/pieds de page
- 4. Exporter un makefile à partir de blocs de code
- 5. Exporter une séquence d'animation à partir de Flash en JPEG
- 6. Exporter vers dxf à partir de Google Sketchup
- 7. Comment exporter pour exceler à partir d'un winform vb.net 2008 sans bureau installé?
- 8. Extraire/exporter des pièces jointes à partir de l'e-mail Lotus Notes à l'aide de C#
- 9. Comment exporter un fichier CSV à partir d'Access?
- 10. Table jQuery à exporter CSV
- 11. Comment tester sur l'IPhone sans avoir accès à un?
- 12. Mise à jour de plusieurs lignes à partir d'un hachage sans simplement boucler dans Rails
- 13. Etes-vous autorisé à avoir une entrée sans valeur?
- 14. y compris les fichiers sans avoir à spécifier $ _SERVER [ « DOCUMENT_ROOT »]
- 15. Imprimer PDF à partir d'ASP.Net sans prévisualisation
- 16. Affichage d'informations à partir de MATLAB sans saut de ligne
- 17. Puis-je utiliser printComponent sans avoir à dessiner un composant à l'écran en premier?
- 18. Accéder à proc_dir_entry à partir de proc_fops.open?
- 19. Variables jQuery clés à Key: Paire CSS attributs
- 20. Comment exporter une définition de struct à partir d'un C .dll natif pour l'utiliser en C#
- 21. Comment exporter les polices et couleurs de VS2008 à VS2005?
- 22. FileIO à partir d'un bean de session sans état
- 23. Comment faire pour GetByte à partir de l'objet sans sérialiser?
- 24. Comment ouvrir QTP à partir de JavaScript sans utiliser ActiveXObject?
- 25. À partir .exe à partir de Visual C++ 2005 dll
- 26. Mise à jour à partir de GridView on Dropdown modifié
- 27. Corriger le nettoyage après avoir accédé à Oracle DB à partir du code .Net
- 28. Création d'une ressource XAML à partir d'un code sans clé
- 29. $ _POST as $ key => $ value à l'aide de cases à cocher
- 30. Puis-je exporter par programme des diagrammes de classes à partir de Visual Studio 2008?
"Ils ont tous été créés en utilisant la même demande de signature de certificat" - Pourquoi? Dans ce cas, ils porteraient tous le même nom commun, à quoi cela sert-il? – NoBugs