Los certificados P12 de una publicación para iPad con Adobe DPS

      Apple obliga a que cada aplicación para iPad que se publique en Apple Store lleve aparejado un certificado y firma digital únicos. Como la aplicación App Builder de Adobe DPS crea una aplicación de prueba y otra de distribución final es necesario comenzar por obtener dos certificados.

      Estos certificados son unos archivos de claves criptográficas de tipo P12. Se derivan de nuestro certificado como desarrolladores de Apple iOS mediante un proceso de intercambio de datos entre el sitio web de desarrollador de iOS y la utilidad de gestión de claves criptográficas del sistema operativo de Apple OS X llamada Acceso a llaveros(KeyChain Access). Nos servirán para crear posteriormente los certificados concretos para cada aplicación que hagamos —los archivos mobileprovision de pruebas y distribución.

      De forma resumida: Ahora crearemos con la utilidad del sistema operativo OS X llamada Acceso a llaveros una petición de firma que enviamos al sitio web de desarrollador de iOS. Éste nos devuelve un archivo con el certificado como desarrolladores (*.cer), que se abre y procesa con Acceso a llaveros para exportar el archivo certificado P12 final.

      Es importante recordar que para cada aplicación que hagamos para iPad tendremos que hacer el proceso dos veces: Una para la aplicación de prueba (testing app) y otra para la de distribución (distribution app). Cada certificado es distinto y no podemos confundirlos, por lo que es muy conveniente distinguir entre ellos añadiéndoles palabras como "distribucion" y "desarrollo", por ejemplo.

      El proceso de crear el certificado P12 para la aplicación de prueba

      Veamos el proceso de obtención de certificados paso a paso:

      1. Preparar la solicitud de certificado

        Lo primero que hacemos es abrir Acceso a llaveros. Vamos al apartado llamado "Mis certificados". Nos aseguramos de no tener seleccionado ningún certificado que pudiera haber anteriormente --pulsar en cualquier parte de la pantalla que no sea un certificado sirve-- y vamos al menú "Asistente para certificados - Solicitar un certificado de una autoridad de certificación".

        En el cuadro de diálogo que aparece, ponemos el correo electrónico que usaremos para gestionar nuestras aplicaciones --usualmente el mismo con el que nos habremos registrado como desarrollaores de Apple iOS. También ponemos nuestro nombre --no nuestro alias ni cosas parecidas, por cierto-- y marcamos que el certificado se guardará en el disco. Pulsamos "Continuar".

        Acceso a llaveros nos pedirá que guardemos la petición de certificado en algún lugar del ordenador y nos sugerirá un nombre para el archivo. Lo recomendable es cambiarlo por un nombre que signifique algo y que incluya la palabra "pruebas" o "desarrollo" para que no confundamos los certificados de las aplicaciones de pruebas con los de distribución.

      2. Solicitar el certificado de prueba a Apple

        En el sitio web de Apple para desarrolladores de iOS (iOS Dev Center), nos identificamos como usuarios de con la clave que obtuvimos al pagar la cuota anual como desarrolladores de Apple.

        Una vez identificados, vamos a la zona de recursos y administración llamada "Provisioning portal" —sólo es visible una vez identificados correctamente—, que es donde se crean y gestionan los certificados que necesitamos.

        Pulsamos sobre la pestaña "Certificates" (certificados) situada en el lado izquierdo. Pulsamos sobre la solapa "Development" (desarrollo), ya que vamos a crear el certificado para la aplicación de prueba o desarrollo. Pulsamos el botón "Request certificate" (solicitar certificado).

        Nos aparecerá esta pantalla, donde se nos pide que localicemos en nuestro ordenador la petición de certificado que hemos preparado antes con Acceso a llaveros. Seleccionamos el archivo "PRUEBASpeticioncertificado" que habiamos guardado y pulsamos "Submit" (enviar).

        Si todo ha ido bien, aparecerá una pantalla como la de arriba, que nos ofrece un enlace para descargar ("Download") un archivo llamado "ios_development.cer", que nos permitirá crear a continuación el certificado P12 que necesitamos para las aplicaciones de pruebas —recordemos que necesitamos otro casi igual para las de distribución—.

        Si el certificado intermedio no se muestra y la pantalla aparece en espera con un mensaje "Pending Issue" (pendiente de emisión), suele bastar con pulsar cualquier otra de las solapas de la izquierda del portal y luego volver a la de "Certificates" para que se refresque —la emisión no tarda mucho, es un proceso automático.

      3. Crear el archivo P12 en si para la App de prueba

        Hacemos doble click sobre el archivo "ios_development.cer" que acabamos de descargar. Eso abrirá Acceso a llaveros e instalará el certificado intermedio.

        En Acceso a llaveros, vamos a la categoría "Llaves", donde deberíamos ver una llave privada al lado de una pública, ambas con el nombre que proporcionamos al hacer nuestra petición de certificado —en mi caso, "Gustavo Sánchez Muñoz".Pulsamos sobre la clave privada —no sobre la pública, esto es muy importante, veremos que se despliega de forma similar a la imagen superior—.

        Con el botón derecho del ratón (Comando-click) accedemos a un menú contextual donde elegimos la opción "Exportar…".

        Guardamos en un lugar bien seguro e identificado el archivo como fichero P12 dándole un nombre que incluya las palabras "prueba" o "desarrollo" para no confundirnos con el certificado P12 destinado a las aplicaciones de distribución —que crearemos a continuación—. El nombre no puede incluir caracteres acentuados o con otras marcas diacríticas; se permiten espacios en blanco guiones y guiones bajos.

        El sistema nos pedirá que proporcionemos una clave segura para el certificado —nunca debemos dejarla en blanco—. Esta clave será necesaria posteriormente al construir las aplicaciones en DPS App Builder.

        Es más que posible que el sistema nos pida que validemos con nuestra clave de administradores la operación.

        El archivo así guardado es el archivo de clave criptográfica P12 necesario para las aplicaciones de pruebas que vayamos a construir.

      El proceso de crear el certificado P12 para la aplicación de distribución

      Es exactamente el mismo proceso salvo por dos diferencias:

      1. Al crearlo, en el portal de iOS debemos estar en la solapa "Distribution" y no en la de "Development".

        Debemos añadir la palabra "distribucion" a los certificados que vayamos creando para no confundirlos con los de prueba.

      2. Debemos añadir al certificado P12 de distribución la misma clave que le pusimos al de pruebas —no porque sea obligatorio sino por evitarnos problemas posteriores.

      Dicho lo cual, ejecutamos todo el proceso entero otra vez y así obtenemos otro archivo P12, esta vez para las aplicaciones de distribución

      Comprobar la validez de los certificados

      El procedimiento es Abrir Acceso a llaveros e ir al apartado "Claves. Allí pulsamos sobre cada una de las claves privadas para ver los certificados.


      El certificado P12 de pruebas debe comenzar con la frase "iPhone Developer:…, y el de distribución debe comenzar con con la frase "iPhone Distribution:…".

      Si pulsamos sobre cada uno de ellos, en la zona superior de la ventana del programa se deben ver imágenes como las de arriba con la expresión "Este certificado es válido". Si no fuera así, hay que repetir el proceso de creación para corregir el problema.

      Estos archivos P12 valen para más de una aplicación. No tenemos que crear un par distinto para cada aplicación que vayamos a crear —salvo que por motivos de trabajo o seguridad creamos que sí. No debemos tener miedo de que se vayan a confundir las aplicaciones y sus certificados por la sencilla razón de que cada aplicación —entendida como pareja prueba-distribución— tendrá su número de aplicación de Apple, que es un identificador único.

      Por razones obvias, se recomienda guardarlos en lugar conocido y seguro.

      8 comentarios

      Problemas con el DPS App Builder

      Hola Gus, nos encontramos hace tiempo en los foros de Adobe, espero que lleves avanzado tu trabajo ;)

      Al grano: acabo de subir con El DPS App Builder una app pero me encuentro que al intentar descargar el archivo developement.ipa me dice: "Fallo al iniciar sesión".

      Miré en los foros de adobe y me encuentro con que pueden ser los certificados, cosa que no creo, pues seguí al pie de la letra las instrucciones de la guía que mencionas, en inglés, eso sí; o bien el nombre de los artículos en el Folio Builder, cosa esta que he solucionado cambiando los nombres de los artículos por números, del 1 al 11, excepto la portada e introducción, que no llevan tildes ni nada parecido. Ahora mismo estoy perdido y buscando por internet me acabo de encontrar con tu página (otra vez, la verdad es que se me tenía que haber ocurrido mirar aquí desde un principio), así que te agradecería mucho que me echaras una mano, sí puedes.

      Muchas gracias y muy buen trabajo, para mí eres una guía en muchas cosas.

      Ángel

      Hola

      Buenas noches, Ángel.

      Yo he ido probando el proceso en el caso de una aplicación SE, no de las versiones Pro o Enterprise —qué más quisiera, ese trabajo que mencionas ha quedado de momento aparcado y estoy haciendo cosas personales.

      Ese problema que te ocurre no me ha sucedido y es muy posible que sea una cuestión de permisos, como dices que has visto mencionado por los fotos. El tema de los certificados requiere, como bien habrás visto, una atención al detalle que llega al nivel de lo analmente retentivo y es posible que pueda haber una algo tan simple como una diferencia de mayúsculas/minúsculas en un permiso o clave. Yo probaría primero a reelaborarlos, posiblemente sea algo de eso, creo.

      Muchas gracias por tu amabilidad. Si necesitas algo más me puedes escribir a mi nombre de usuario aquí, en casa del señor gmail.

      Gustavo

      Certificados. p12

      Hola, qué tal, Gustavo,

      Tengo un problema al querer generar los archivos p12, ya que al darle doble click al archivo ios.development.cer no aparece en claves en mi Acceso a llaveros. Mi pregunta es si sabes como puedo visualizarlos?

      Saludos

      WWDR

      Algunas personas han tenido problemas porque el Macintosh en el que están haciendo todas estas operaciones carece de un certificado intermedio llamado (Apple Worldwide Developer Relations Intermediate Certificate, WWDR). Éste es un certificado intermedio que, para decirlo de forma resumida, garantiza que los otros certificados de la cadena son auténticos y provienen de quien tienen que provenir.

      Si este certificado no existe en la máquina, los otros se considerarán provenientes de autoridades no certificadas y, por tanto inseguras.

      En ese caso, habrá que ir al portal de desarrolladores de Apple, identificarse y descargarlo. Para instalarlo basta con abrir la utilidad de Acceso a llaveros y soltarlo sobre ella. A partir de entonces el proceso debería realizarse sin problemas de identificación.

      Dudas

      Buenas tardes,

      He seguido el tutorial al pie de la letra, pero al crear el certificado y darle doble click para que lo coloque en el llavero, no me aparece como la imagen. Es decir, la llave no me aparece al lado del nombre del certificado ni el nombre de éste me aparece con la clave del certificado. Sí me permite crear el P12, pero cuando lo importo al build, me marca el siguiente error: "Error - no iPhone Developer/Distribution identity found on your certificate..."

      ¿Esto a que se devb? Durante el proceso de la creación del certificado todo pasa correctamente y en ningún momento me marca error.

      Espero que pueda ayudarme. De antemano, gracias.

      Saludos

      Puede haber más de una causa

      Hola,

      A mi no me ha pasado pero buscando el error en la red parece haber más un motivo posible. Estos son algunos:

      • Estás creando el certificado como si fuera para una distribución adhoc —no es el caso y debes corregir ese error.

      • Has incluido algún caracter especial (acentuado, espacio, con tildes…) en la contraseña del certificado. Usa sólo números y letras minúsculas sin acentuar.

      • Has creado el certificado de distribución como si fuera el de desarrollo o viceversa —este es un error bastante fácil de cometer, por cierto.

      • Puede haber sido transmitido de alguna manera que se haya deteriorado (¿DropBox?)

      • Has confundido alguno de los elementos o alguno de los pasos sin darte cuenta.

      Revocar el certificado y rehacerlo muy cuidadosamente podría eliminar el problema. Más información disponible en este sitio de Apple sobre problemas con los certificados para iOS.

      Certificados P12

      Hola Gustavo, te sigo hace ya algunos años, pero esta es la primera vez que hago una consulta y es con respecto a los certificados p12 ¿debo hacer un certificado por cada app que haga?.

      Saludos

      M.a Luisa

      Es importante recordar que para cada aplicación que hagamos para iPad tendremos que hacer el proceso dos veces: Una para la aplicación de prueba (testing app) y otra para la de distribución (distribution app). Cada certificado es distinto y no podemos confundirlos, por lo que es muy conveniente distinguir entre ellos añadiéndoles palabras como "distribucion" y "desarrollo", por ejemplo.

      Pero una revista de más de un número (no single) con su quiosco es una sóla app.

      Un saludo

      Añadir nuevo comentario