2010-12-29 12 views
24

Por razones estéticas, me gustaría usar la misma clave privada que usé para crear mi certificado de distribución hace un tiempo, para crear un nuevo certificado de desarrollo (el anterior expiró). Pero el "Cómo crear un certificado de desarrollo:" en el portal de aprovisionamiento de iOS requiere que use Keychain Access para crear una nueva clave. Cuando trato de hacer Acceso a Llaveros> Asistente de Certificado> Solicitar un Certificado de una Autoridad Certificadora con "(mi nombre de clave)", el Asistente de Certificado en realidad no crea un archivo CSR.¿Cómo puedo usar una clave privada existente para un nuevo certificado de desarrollo de iOS?

¿Alguien sabe si esto se puede hacer y, de ser así, cómo?

+0

Considera mi respuesta a continuación, que en realidad proporciona los comandos openssl necesarios –

+0

@simon ... Tengo la CSR conmigo ... ¿Solicitaré el certificado con la misma ahora? – Saty

Respuesta

47

Primero, tuve que exportar mi clave privada desde el llavero como un archivo p12. Traté de escribir esto, pero no tuve éxito.

  1. abierto llavero y seleccione su clave privada
  2. el botón derecho del ratón y seleccione "Exportar"
  3. Utilice un tipo de archivo p12.

Ejecute el siguiente comando openssl para convertir su archivo p12 protegido por contraseña a una pem. openssl pedirá una contraseña.

openssl pkcs12 -in your-newly-exported-p12-file.p12 -out your-newly-exported-p12-file-as-a-pem.pem -nodes 

Ejecute el siguiente comando en su archivo de pem para generar el csr.

openssl req -new -key your-newly-exported-p12-file-as-a-pem.pem -out your-csr-to-submit-to-apple.csr 
+1

Funciona muy bien. Openssl le pedirá un montón de metadatos. Proporcioné mi correo electrónico, pero nada más. Además, los perfiles de aprovisionamiento aún muestran "caducado" después de generar el nuevo certificado.Para renovarlos, haga clic en "Modificar", despliegue el cuadro "ID de la aplicación" y seleccione lo mismo que ya seleccionó (diseño agradable Apple) y haga clic en "Guardar". – DougW

+0

Gracias ... Intenté que las Notificaciones Push funcionaran en la aplicación iPhone, y una vez que creé el Certificado en el Perfil de Aprovisionamiento y lo descargué, lo agregué al Acceso a Llaveros. A continuación, selecciono TANTO el Certificado que acabo de añadir Y la clave privada utilizada para crear los certificados CSR, y luego hago clic derecho y hago clic en Exportar 2-Items como p12. Luego usé la línea "openssl pkcs12" arriba para convertir de p12 a pem que se puede usar para enviar notificaciones push. – jsherk

+0

gracias, muchas gracias, realmente me salvaste el tiempo :) Thumbs up –

2

¿Se siente cómodo con OpenSSL y la línea de comandos? Hay un discussion en una lista de correo sobre cómo crear el CSR manualmente. FWIW, tampoco pude crear una CSR usando una clave seleccionada en Keychain Access/Certificate Assistant.

+0

Gracias que se ve genial y muy simple. Lo intentaré la próxima vez que necesite hacer una CSR. –

+0

Considera mi respuesta a continuación, que en realidad proporciona los comandos de openssl necesarios. –

4

Para generar una CSR a partir de una clave privada existente en el acceso a llaves, sólo haga clic (con dos dedos clic) en la clave privada que desee utilizar y elegir solicitar un certificado de un certificado de autoridad CON " (Mi nombre de clave) "

Luego ingrese la dirección de correo electrónico del usuario y la dirección de correo electrónico de CA (solo uso la misma dirección de correo electrónico para ambos) y luego elija Guardado en disco.

+0

Me parece recordar haber leído en alguna parte que esto no funciona con el portal de aprovisionamiento de Apple. –

+0

¡Funciona para mí! :) – jsherk

+0

Lo he probado varias veces y no funciona. Pero aparentemente lo hace para algunos. (se anota solo en caso de que otros tengan el mismo problema frustrante) – sandstrom

0

Pasé por este infierno hoy. Quería automatizar la exportación de una clave para crear la CSR a través de la línea de comandos. Encontré una herramienta escrita en c que prometía lo que quería: keychain_access. Compilé y jugué con él, pero no pude exportar mi clave de distribución. Creé la herramienta de nuevo desde cero con la última API de Apple de seguridad y la impresión de atributos de elementos de llavero, pero todavía no pude encontrar la llave por etiqueta. Pude enumerarlo sin buscar etiquetas. En un intento desesperado, cambié el nombre a clave en la herramienta de acceso de llavero y lo renombré al nombre antiguo. Después de eso, mi herramienta finalmente patea la tecla por etiqueta. Y también el clic derecho REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)" comenzó a funcionar nuevamente también. Parece que el nombre se guardó en una codificación diferente o algo así. ¡No la herramienta de acceso de llavero de manzanas de eventos fue capaz de encontrar la llave!

Cuestiones relacionadas