Idealmente, deve haver apenas dois cenários em que um aplicativo iOS precisaria aceitar um certificado não confiável.
Cenário A: Você está conectado a um ambiente de teste que está usando um certificado autoassinado.
Cenário B: você está proxy de HTTPS
tráfego usando um proxy MITM Proxy like Burp Suite, Fiddler, OWASP ZAP, etc.
que retornará um certificado assinado por uma CA autoassinada para que o proxy possa capturar HTTPS
tráfego.
Os hosts de produção nunca devem usar certificados não confiáveis por razões óbvias .
Se você precisar que o simulador do iOS aceite um certificado não confiável para fins de teste, é altamente recomendável que você não altere a lógica do aplicativo para desativar a validação de certificado interna fornecida pelas NSURLConnection
APIs. Se o aplicativo for lançado ao público sem remover essa lógica, ele estará suscetível a ataques do tipo man-in-the-middle.
A maneira recomendada de aceitar certificados não confiáveis para fins de teste é importar o certificado da Autoridade de Certificação (CA) que assinou o certificado no seu Simulador iOS ou dispositivo iOS. Eu escrevi um post rápido no blog que demonstra como fazer isso no iOS Simulator:
aceitando certificados não confiáveis usando o simulador ios