ver perfiles instalar confianza confiable certificados certificado apple aparecen iphone ssl ios-simulator keychain pki

perfiles - ¿Agregar un certificado autofirmado a iphone simulator?



trust store ios (6)

Tengo un certificado autofirmado en el punto final de mi API. Estoy intentando probar algunas cosas con el simulador, pero obtengo un "certificado de servidor que no es de confianza".

Intenté utilizar Safari en el simulador para descargar el archivo .crt, pero parece que no funciona.

¿De dónde obtiene el simulador de iPhone su llavero? ¿Cómo puedo agregar un certificado de confianza para que mi aplicación funcione?

ACTUALIZAR

Lo hice funcionar creando una CA y luego agregando un certificado de CA usando la herramienta de aprovisionamiento de iPhone. Luego pude tener un certificado firmado por ese certificado de CA en el servidor de API y la NSConnection acaba de funcionar. No pude hacer que funcione con un certificado autofirmado por algún motivo. Necesito volver a intentar esto usando el software de aprovisionamiento.

Mi verdadera pregunta es ¿cómo hago para que funcione en el simulador? Creo que el simulador utiliza el llavero de la computadora real.



Eche un vistazo al guión de shell que Charles usa para instalar su certificado autofirmado en el llavero del simulador. http://www.charlesproxy.com/documentation/faqs/ssl-connections-from-within-iphone-applications/

Ver también:

Parece que instalar tu propio certificado en el simulador puede requerir instalarlo en un dispositivo a través de Safari y luego copiar la fila resultante del TrustStore.sqlite3 del dispositivo en el simulador.


Para aquellos que consideran que el arrastre y la caída del certificado en el simulador no funciona, hubo un cambio reciente que agrega un paso adicional .

Se debe indicar explícitamente al simulador que confíe en la CA raíz. Haz esto yendo a:

General -> Acerca de -> Configuración de confianza del certificado -> "Habilitar la confianza completa para el certificado raíz" para su certificado particular

Vea la respuesta completa aquí :


Solo por información, si alguien todavía se encuentra con ese problema:

simplemente arrastre y suelte sus archivos .cer en la ventana de ejecución de Simulator. Verás que Safari parpadea y luego aparece el cuadro de diálogo de importación para tu Certificado (o Autoridad de certificación) ...

Trabajando para iOS 7 Simulator (y creo que funcionó para iOS 6 también).


Tuve este mismo problema por meses y hoy FINALMENTE lo resolví con:

ADVTrustStore

ADVTrustStore que utilizar un proyecto llamado ADVTrustStore de github. Hace algo de magia extravagante, pero instalará certificados correctamente en su tienda de confianza de la raíz en el simulador.

Pasos para instalar un certificado personalizado

# Clone the repo git clone https://github.com/ADVTOOLS/ADVTrustStore.git # Enter the repo directory cd ADVTrustStore/ # Copy your .crt file cp somewhere/something.crt my.crt # conver to a .pem file openssl x509 -in my.crt -out my.pem -outform PEM # Install the pem in the simulators ./iosCertTrustManager.py -a my.pem

Con este proceso, pude obtener imágenes de GoogleStreetView para que se procesaran correctamente mientras estaba detrás de un firewall corporativo usando SSL renunciando con certificados autofirmados

Fondo

Estaba usando CharlesProxy y noté que estaba instalando certificados correctamente en el simulador, pero no aparecieron en la sección Configuración - Perfiles . Luego, después de buscar, descubrí esta herramienta. Probablemente existan algunas otras herramientas, pero en mi caso el arrastrar y soltar nunca funcionó correctamente para todos los casos. Safari estaría bien, pero no mis aplicaciones.


Utilizando iPhone Backup Extractor , copié el TrustStore.sqlite3 mi iPhone en ~/Library/Application Support/iPhone Simulator/6.0/Library/Keychains , sobrescribiendo el archivo existente. Intenté insertar solo una fila con el siguiente sqlite, pero no pude hacerlo funcionar.

sqlite3 ~/backup/iOS/ Files/TrustStore.sqlite3 sqlite3>.mode insert sqlite3>.output working.sql sqlite3>select * from tsettings; sqlite3>.quit

Ahora, working.sql tiene todo el contenido de la tabla tsettings (en mi caso, 1 fila).

sqlite3 ~/Library/Application/ Support/iPhone/ Simulator/6.0/Library/Keychains/TrustStore.sqlite3 sqlite3>INSERT INTO tsettings VALUES(X''... sqlite3>.quit

Una vez más, los comandos sqlite anteriores no me funcionaron, pero podría ser un buen punto de partida para otra persona. Copiando todo TrustStore.sqlite3 de la copia de seguridad en el simulador funcionó bien.