Pergunta

Eu tenho um galpão de carga dos certificados dos aps_developer_identity.cer 'exportados do iPhone portal Developer. Eles foram todos criados usando o mesmo pedido de assinatura de certificado e (assim) a mesma chave privada. Se eu exportar apenas a chave privada da cadeia da Apple Key é então possível tirar a chave privada eo 'aps_developer_identity.cer' e uso openssl para criar mesclado p12 / certificado PKCS # 12 que eu posso usar no meu servidor (Windows) .

Só para ficar claro, eu sei como conseguir um fundiu p12 do chaveiro por exportar a chave privada e certificado junto, mas eu quero remover todo o clique do mouse extra e digitação se eu puder.

Foi útil?

Solução

Eu consegui resolver isso, ele só precisa envolver-se em um shell script e é bom para ir. Eu estou supondo que você tenha baixado e renomeado seu certificado 'apple_developer_identity.cer', aqui eu uso 'test.cer', e que você também têm exportado sua chave de desenvolvedor de seu chaveiro, no exemplo abaixo com o nome '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

NOTA: Se você acha isso um pouco todos prolixo para conseguir o que pode ser feito com alguns cliques do mouse e digitação do nome de um arquivo, em seguida, considerar o caso em que você tem 20 Aplicativos que você deseja habilitar para notificações. Cada aplicativo tem um certificado de desenvolvimento e produção, que expiram em 4 e 12 meses, respectivamente. Isso é um erro de trabalho propenso muito chato e ...

Outras dicas

trabalho impressionante aqui. Obrigado pela ajuda verdadeira caras. I caíram no meu script shell abaixo que podem ajudar os outros. Eu tenho várias das chaves para lidar com e queria um roteiro bem. Este script nomes estáticos de saída para os arquivos de saída (embora que seria simples de mudança).

Espero que ajude alguém.

exemplo de uso (assumindo nome do script):

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

O 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

Você pode fazer p12 / certificado PKCS # 12 diretamente no keychain. Não há necessidade de executar qualquer comando.

Clique 1.Double em seu arquivo cert desenvolvedor / produção baixado do site da Apple dev. (Vai ser adicionado em keychain)

2.I assumir que tem .p12 que você tem de exportar a chave privada

3.Go a guia Meus Certificados sob keychain.

basta clicar sobre o seu certificado dev / prod para APN.it deve mostrar chave privada associada a ele

4.Right clique e exportação do certificado em formato .p12

isso é arquivo .p12 última !!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top