Cómo crear un certificado de firma de paquete del instalador de Apple

5

¿Cómo podemos crear un certificado con la siguiente extensión de Uso de clave extendida usando OpenSSL?

  

Extensión del uso de clave extendida, crítica, con un propósito que contiene la firma del código del paquete del instalador de ID del desarrollador ( 1.2.840.113635.100.4.13 )

La herramienta de desarrollo de Apple productsign requiere que el certificado de firma se ajuste al perfil Certificado de firma del paquete del instalador descrito en Declaración de Práctica de Certificación de la Autoridad de Certificación ID de desarrollador (página 14 de 18).

Me gustaría firmar nuestras versiones de vista previa del producto con nuestros propios certificados, en lugar de los emitidos por Apple.

    
pregunta Graham Miln 31.07.2012 - 14:53
fuente

2 respuestas

2

Una documentación de copiar y pegar para mí. Para obtener más información sobre las extensiones de certificado, consulte el ID de desarrollador de Apple Declaración de práctica de certificación .

  1. Crea apple.conf con el siguiente contenido:

    [ req ]
    distinguished_name = req_name
    prompt = no
    [ req_name ]
    CN = my-test-installer
    [ extensions ]
    basicConstraints=critical,CA:false
    keyUsage=critical,digitalSignature
    extendedKeyUsage=critical,1.2.840.113635.100.4.13
    1.2.840.113635.100.6.1.14=critical,DER:0500
    
  2. Genera la clave:

    openssl genrsa -out apple.key 2048

  3. Crea el certificado autofirmado:

    openssl req -x509 -new -config apple.conf -nodes \
    -key apple.key -extensions extensions -sha256 -out apple.crt
    
  4. Envuelva la clave y el certificado en PKCS # 12:

    openssl pkcs12 -export -inkey apple.key -in apple.crt -out apple.p12

  5. Importarlo en el llavero con open apple.p12 . Selecciona "Confiar siempre".

  6. Utilice el certificado para firmar a los instaladores:

    productbuild --sign "my-test-installer" ...

respondido por el martin 01.01.2014 - 12:21
fuente
1

Para agregar extensiones en un certificado emitido con OpenSSL, debe usar un "archivo de configuración" que contenga el valor de la extensión. Consulte esta página para obtener una descripción (hay una sección sobre la extensión Extended Key Usage ). El archivo de configuración se usa luego con el comando openssl ca , con los indicadores de línea de comando -config y -extensions (consulte la documentación ).

    
respondido por el Thomas Pornin 13.01.2013 - 21:29
fuente

Lea otras preguntas en las etiquetas