HTTPS с NSURLConnection – NSURLErrorServerCertificateUntrusted

У меня есть приложение, которое прекрасно соединяется с http. При попытке https я получил ошибку, в которой говорится, что корневому сертификату не доверяют. Я нашел URL-адреса для моего сертификата сайта, его сертификата ЦС и корневого сертификата ЦС и добавил их через Safari на телефон. Теперь, когда я перехожу в Preferences -> General -> Profiles, я могу видеть все мои сертификаты, которые проходят всю цепочку. В каждом сертификате есть красная подпись без знака. Тем не менее, когда я подключаюсь, я получаю ошибку NSURLErrorServerCertificateUntrusted. Я пытаюсь понять, куда идти дальше.

Любая помощь будет большой. Единственное, что может повлиять на это, это то, что я подключаюсь к нечетному порту. Поэтому мой URL-адрес – www.domain.com:port. Номер порта создает сертификат – несоответствие имени домена?

Теперь я использовал утилиту конфигурирования iPhone для добавления профиля конфигурации в телефон. Он имеет мой корневой сертификат, сертификат ca и сертификат сайта. Профиль на телефоне говорит о его подтверждении. В деталях я вижу три моих сертификата. Но когда я пытаюсь подключиться, я все равно получаю недоверенную ошибку сертификата. Какие-либо предложения?

Просто пытаюсь выяснить, сможет ли кто-нибудь еще помочь в этом?

Существует поддерживаемый API для игнорирования плохих сертификатов во время загрузки NSURLConnection. Для этого просто добавьте что-то подобное вашему делегату NSURLConnection:

- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]; } - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) if (... user allows connection despite bad certificate ...) [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; } 

Обратите внимание, что соединение: didReceiveAuthenticationChallenge: может отправить свое сообщение на вызов.sender (много) позже, после предоставления пользователю диалогового windows, если это необходимо, и т. Д.

  • проверка сертификата сервера не удалась. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
  • Как проверяются сертификаты ssl?
  • Как проверить, подписана ли APK или «отладить сборку»?
  • Вставка сертификата (с закрытым ключом) в корне, хранилище сертификатов LocalMachine не выполняется в .NET 4
  • Как игнорировать создание пути PKIX не удалось: sun.security.provider.certpath.SunCertPathBuilderException?
  • Как подписать апплет Java для использования в браузере?
  • Как создать самозаверяющий сертификат для доменного имени для разработки?
  • Android Studio - отладочное хранилище
  • iOS получить профили конфигурации, которые установлены
  • Как создать самозаверяющий сертификат с помощью C #?
  • Преобразование .pfx в .cer
  • Давайте будем гением компьютера.