2012-02-14 9 views
6

He buscado en bastantes sitios para cualquier Intel sobre la configuración de iPhone de forma inalámbrica con archivos mobileconfig, y atrapado en algún momento ...:/ aquí es lo que he encontrado: http://cryptopath.wordpress.com/2010/01/29/iphone-certificate-flaws/ pero esto parte está más allá de mi comprensióniOS mobileconfig walkarounds

Usando smime openssl y el P12 que obtuvo de Verisign, firmar el archivo mobileconfig incluyendo la cadena de CA completa y ponla en un servidor HTTP pública

Si he entendido bien lo que tengo que hacer es:
1) obtener un certificado de Verisign (GOT se basa en key.pem y request.pem genera a partir de OpenSSL)
2) crear el archivo de configuración del iPhone en .mobileconfig Utilidad (¿Tengo que tener todas las configuraciones en su lugar o es suficiente para tener este archivo?)
3) y ... ¿qué es esta cadena de CA?

También he encontrado cosas aquí: http://www.rootmanager.com/iphone-ota-configuration/iphone-ota-setup-with-signed-mobileconfig.html
Aquí también estoy atascado con este material cadena ... no tiene a nadie/saber, preferiblemente paso a paso para la solución de los noobs como yo? ;) (el más buscado es obviamente la solución para crear todo el material del certificado, porque más adelante es un tutorial bastante directo)

Respuesta

11

Un resumen básico de las cadenas CA: Digamos que tiene un certificado de seguridad que dice que es example.com. Pero nadie te va a creer. Entonces lo consiguen con la firma de alguien en quien la gente confía (Verisign en su ejemplo anterior). Ahora, creo que usted es example.com porque Verisign lo avala firmando su certificado.

Por lo general, Verisign no lo firmará con su certificado principal "raíz". En su lugar, lo firmarán con una CA de segundo nivel, y esa CA de segundo nivel estará firmada por el certificado raíz en el que confío.

Es una cadena de certificados: Usted (example.com), está firmado por una CA de segundo nivel, que está firmado por una CA raíz.

Por lo tanto, al darme su certificado, también debe proporcionar toda la cadena para que pueda validar todo el camino hasta la parte superior y ver si realmente confío en usted.

Por lo tanto, el siguiente comando toma su archivo .mobileconfig y lo firma con su certificado. Y confiaré en su firma, siempre y cuando proporcione toda la cadena.

Archivos:
* company.mobileconfig < - el archivo de .mobileconfig que hizo
* signed.mobileconfig < - el archivo firmado que se crea después de que se realiza el comando
* server.crt < - su certificado que obtuvo de una CA confiable
* server.key < - su archivo de clave privada que acompaña al certificado anterior (a salvo)
* cert-chain.CRT < - lo que son certificados en la cadena hasta la CA de nivel superior que la gente confía

El comando:

openssl smime -sign -in company.mobileconfig -out signed.mobileconfig 
    -signer server.crt -inkey server.key -certfile cert-chain.crt 
    -outform der -nodetach 
+0

thx por la respuesta, voy a tratar de probar que lo antes posible y le hará saber :) – raistlin

+0

Esto funcionó para mí, utilicé un certificado SSL. Gracias. – dazito

+0

Así es como puede replicar este comando en código Java: http://stackoverflow.com/questions/36595294/replicate-openssl-command-to-sign-a-file-in-java – dazito