Cómo agregar una CA al TrustStore predeterminado en OSX e iOS

3

Recientemente, quiero capturar el paquete de ingreso en iOS, después de instalar p12 usando Safari. Muestra que no se puede establecer un enlace seguro.
Sin embargo, después de agregar NSAppTransportSecurity/NSAllowsArbitraryLoads = Truea ingress.app/info.plist. Ingress intenta enviar el paquete una y otra vez. Sin embargo, el servidor solo devuelve el paquete nulo.
En las otras manos. Traté de agregar el p12 a OSX y pip no funciona bien, dice error de cert.
Creo que algunas aplicaciones solo confían en el TrustStore predeterminado.

Así que aquí está mi problema: cómo agregar una CA al TrustStore predeterminado en OSX e iOS.

Finalmente encontré una vieja manera de añadir cert por defecto del almacén de confianza [pregunta]: https://stackoverflow.com/questions/347690/iphone-truststore-ca-certificates método de @Max Ried, sin embargo de que sea demasiado viejo, y la TrustStore.sqitetiene se cambió a certsTable.datay no encontré ninguna manera de decodificarlo, y el pdf ruso podría ayudar [pdf]: http://dsec.ru/upload/medialibrary/b2f/b2fa8c121cc7f1ca94b63f34c22735e7.pdf
Entonces, ¿hay algún método actualizado para instalar CA?

Secuenciador
fuente

Respuestas:

1

Tanto iOS como OS X pueden usar perfiles de configuración para instalar certificados .

Apple tiene una buena documentación en https://help.apple.com/serverapp/mac/5.0/#/ sobre cómo hacerlo usando Server.app. Afortunadamente, puede usar el mismo perfil en iOS / OS X para certs, aunque muchas otras configuraciones son exclusivas de uno u otro sistema operativo.

Recomendaría usar Apple Configurator 2 para crear sus perfiles, ya que es gratuito y está basado en gráficos. Puede usar Profile Manager en Server.app si tiene muchos clientes para configurar y otra solución MDM no funciona para usted.

No importa qué herramienta elija para crear el perfil, es solo un archivo que coloca en un servidor web o envía un correo electrónico a los clientes y luego toca / hace clic para instalar el certificado.

bmike
fuente
Sin embargo, el certificado no es de confianza. Parece que hay otro TrustStore que se guardó inicialmente en Security.Buddle. ¿Como algunas aplicaciones solo confían en el certificado allí? No tengo idea de por qué Charles no puede capturar el paquete de Ingress.
Secuenciador
@Sequencer Tiene razón: también deberá enviar el certificado raíz si el certificado que ingresó inicialmente no es confiable y está firmado por otro certificado. Supuse que estaba presionando la raíz cuando dijo CA, pero parece que inicialmente estaba configurando solo un certificado y no la autoridad inicial. Puede usar el Asistente de certificados de Keychain Assistant para solicitar certificados SSL de un servidor y luego separarlos y solicitar el base en muchos casos.
bmike
Gracias por su respuesta. Sin embargo, todavía devuelve un error. En Charles tengo este Charles Proxy Custom Root Certificate.cer(es la raíz) y charles-ssl-proxying.p12y charles-ssl-proxying-certificate.crtno importa lo agrego a esta pip archivo de configuración y la captura de paquetes de ingress.app aún no funciona.
Secuenciador