¿Cómo puedo usar una key privada existente para un nuevo certificate de desarrollo de iOS?

Por motivos estéticos, me gustaría usar la misma key privada que utilicé para crear mi certificate de distribución hace un time, para crear un nuevo certificate de desarrollo (mi anterior caducó). Pero el "Cómo crear un certificate de desarrollo:" en el portal de aprovisionamiento de iOS requiere que use Keychain Access para crear una nueva key. Cuando bash hacer Keychain Access> Certificate Assistant> Solicitar un certificate de una autoridad de certificación Con "(mi nombre de key)" el ​​Asistente de certificate en realidad no crea un file CSR.

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

Primero, tuve que exportar mi key privada desde el llavero como un file p12. Intenté escribir esto, pero no tuvo éxito.

  1. Abra el llavero y select su key privada
  2. Haga clic derecho y select "Exportar"
  3. Use un tipo de file p12.

Ejecute el siguiente command openssl para convertir su file p12 protegido con contraseña en un file pem. openssl solicitará 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 command en su file 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 

Para generar un CSR desde una Clave privada existente en Acceso a Llavero, simplemente haga clic con el button derecho (haga doble clic) en la Clave privada que desea usar y elija SOLICITAR UN CERTIFICADO DE UNA AUTORIDAD DE CERTIFICADO CON "(Mi nombre de key)".

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 Guarde en disco.

¿Te sientes cómodo con OpenSSL y la command-line? Hay una discusión en una list de correo sobre cómo crear el CSR manualmente. FWIW, tampoco pude crear una CSR usando una tecla seleccionada en el Acceso a Llavero / Asistente de Certificado.

Pasé por este infierno hoy. Quería automatizar la export de una key para crear el CSR a través de la command-line. 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 key de distribución. Creé la herramienta de nuevo desde cero con la más reciente API de security de Apple y la printing del atributo del elemento llavero, pero aún no pude encontrar la key por label. Pude enumerarla sin búsqueda de tags. En un bash desesperado, cambié el nombre de la llave en la herramienta de acceso de llavero y cambié el nombre al nombre anterior. Después de eso, mi herramienta finalmente atestigua la key por label. Y también el clic derecho REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)" comenzó a funcionar de nuevo. Parece que el nombre se guardó en una encoding diferente o algo así. ¡Las herramientas de acceso a llaveros de las manzanas de events no fueron capaces de encontrar la key!