キーチェーンからエクスポートしなくても、P12にaps_developer_identity.cer?

StackOverflow https://stackoverflow.com/questions/1453286

質問

私持っているのiPhoneデベロッパポータルからエクスポートされた「aps_developer_identity.cerの証明書のロードを流しました。これらはすべて同じ証明書署名要求(このため)同じ秘密鍵を使用して作成されました。私はアップルのキーチェーンからわずか秘密キーをエクスポートした場合には、秘密鍵と「aps_developer_identity.cer」を取ると、マージされたP12 / PKCSを作成するためにOpenSSLを使用することが可能である私は(Windowsの場合)、サーバー上で使用することができます#12証明書ます。

ただ、明確にするために、私は一緒に秘密鍵と証明書の両方をエクスポートすることにより、キーチェーンからマージされたP12を取得する方法を知っているが、私は私ができる場合は、すべての余分なマウスをクリックし、入力を削除したい。

役に立ちましたか?

解決

私は、シェルスクリプトでは、それだけでラップする必要がこれを動作するように管理し、行ってもいいです。 私はあなたがダウンロードし、ここで私は「test.cer」を使用し、あなたが名前の「private_dev_key.p12」以下の例では、キーチェーンからあなたの開発者キーをも輸出していることあなたの「apple_developer_identity.cer」の証明書を、名前を変更したと仮定しています。

#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

注:これは、すべてのビット長のマウスを数回クリックし、ファイルの名前のタイピングで何ができるかを達成するためにったらしいと思うなら、あなたはあなたが有効にしたい20個のアプリを持っている場合を考えます通知。各アプリケーションはそれぞれ4と12ヶ月で期限切れと開発と生産の証明書を持っています。これは非常に退屈でエラーが発生しやすい仕事です...

他のヒント

ここで素晴らしい作品。本当の助けみんなのおかげで。それは他の人を助けることの下に、私は私のシェルスクリプトで下落しています。私が対処するキーのいくつかを持っているだけでなく、スクリプトを望んでいました。このスクリプトの意志出力出力ファイルの静的な名前(つまり、変更するのは簡単だろうが)。

私はそれが他の誰かに役立ちます願っています。

(スクリプト名を仮定して)使用例

$ . thisScript request_file.cer priv_key.p12 aps_dev.cer

スクリプトます:

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

あなたはキーチェーンに直接P12 / PKCS#12証明書を作ることができます。 任意のコマンドを実行する必要がありません。

リンゴのdevのサイトからダウンロードし、あなたの開発/生産証明書ファイルの

1.double]をクリックします。(これはキーチェーンに追加されます)

2.Iはあなたが

秘密鍵を輸出から得た.p12ファイルを持っていると仮定します キーチェーンの下で私の証明書]タブに

3.goます。

ただ、それに関連付けられた秘密キーが表示されるはずですAPN.itのためのあなたのDEV / PROD証明書をクリックしてください。

.P12形式でクリックして、輸出証明書4.Right

のthats最終.P12ファイル!!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top