Desde que atualizei meu projeto existente com o iOS 9, continuo recebendo o erro:
Ocorreu um erro de SSL e não foi possível estabelecer uma conexão segura com o servidor.
Desde que atualizei meu projeto existente com o iOS 9, continuo recebendo o erro:
Ocorreu um erro de SSL e não foi possível estabelecer uma conexão segura com o servidor.
Respostas:
Para o iOS9, a Apple tomou uma decisão radical com o iOS 9, desabilitando todo o tráfego HTTP inseguro de aplicativos iOS, como parte do App Transport Security (ATS) .
Para simplesmente desativar o ATS, você pode seguir estas etapas abrindo Info.plist e adicionar as seguintes linhas:
fonte
Mesmo que permitir cargas arbitrárias (
NSAllowsArbitraryLoads = true
) seja uma boa solução alternativa, você não deve desativar totalmente o ATS, mas sim ativar a conexão HTTP que deseja permitir:fonte
O iOS 9 força conexões que usam HTTPS a serem TLS 1.2 para evitar vulnerabilidades recentes. No iOS 8, até mesmo conexões HTTP não criptografadas eram suportadas, de modo que as versões anteriores do TLS também não causavam problemas. Como alternativa, você pode adicionar este snippet de código ao seu Info.plist:
* referenciado a App Transport Security (ATS)
fonte
Se você está apenas almejando domínios específicos, pode tentar adicionar isso ao Info.plist do seu aplicativo:
fonte
Parece que o iOS 9.0.2 interrompe as solicitações para endpoints HTTPS válidos. Minha suspeita atual é que ele está exigindo certificados SHA-256 ou falha com este erro.
Para reproduzir, inspecione seu UIWebView com safari e tente navegar para um ponto de extremidade HTTPS arbitrário:
Agora tente ir ao google (porque é claro que eles têm um certificado SHA-256):
Adicionar uma exceção à segurança de transporte (conforme descrito pela resposta de @stéphane-bruckert acima) corrige isso. Eu também presumo que a desativação completa
NSAppTransportSecurity
funcionaria também, embora eu tenha lido que desativá-la completamente pode prejudicar a análise do seu aplicativo.[EDIT] Descobri que simplesmente enumerar os domínios aos quais estou me conectando no
NSExceptionDomains
dicionário corrige o problema, mesmo quandoNSExceptionAllowsInsecureHTTPLoads
definido como verdadeiro. : \fonte
O problema é o certificado SSL no lado do servidor. Algo está interferindo ou o certificado não corresponde ao serviço. Por exemplo, quando um site tem um certificado SSL para www.mydomain.com enquanto o serviço que você usa é executado em myservice.mydomain.com. Essa é uma máquina diferente.
fonte
Recebo o mesmo erro ao especificar meu URL HTTPS como: https://www.mywebsite.com . No entanto, ele funciona bem quando eu o especifico sem os três W como: https://mywebsite.com .
fonte
Projeto Xcode -> goto info.plist e clique no botão + e depois em Adicionar (Configurações de segurança de transporte do aplicativo) Expanda, Permitir cargas arbitrárias, defina YES. obrigado
fonte
Meu problema era
NSURLConnection
e foi descontinuado no iOS9, então mudei toda a API paraNSURLSession
e isso corrigiu meu problema.NSURLConnection obsoleto no iOS9
fonte
No meu caso, enfrentei esse problema no meu simulador porque a data do meu computador estava atrasada em relação à data atual. Portanto, verifique também este caso quando encontrar um erro de SSL.
fonte
Eu estava recebendo um erro abaixo da reprodução
Verifiquei se adicionei a entrada em domínios de exceção no arquivo plist e NSAllowsArbitraryLoads está definido como verdadeiro e ainda estava vendo um erro.
Então percebi que estou jogando URL com https e não http.
Defini o url do vídeo como http e o problema foi resolvido.
fonte
Eu estava recebendo este erro para algumas chamadas de rede e não para outras. Eu estava conectado a um wi-fi público. Esse wi-fi gratuito parecia estar adulterando certos URLs e, portanto, o erro.
Quando me conectei ao LTE, aquele erro foi embora!
fonte