HTTPS с NSURLConnection – NSURLErrorServerCertificateUntrusted
У меня есть приложение, которое прекрасно соединяется с http. При попытке https я получил ошибку, в которой говорится, что корневому сертификату не доверяют. Я нашел URL-адреса для моего сертификата сайта, его сертификата ЦС и корневого сертификата ЦС и добавил их через Safari на телефон. Теперь, когда я перехожу в Preferences -> General -> Profiles, я могу видеть все мои сертификаты, которые проходят всю цепочку. В каждом сертификате есть красная подпись без знака. Тем не менее, когда я подключаюсь, я получаю ошибку NSURLErrorServerCertificateUntrusted. Я пытаюсь понять, куда идти дальше.
Любая помощь будет большой. Единственное, что может повлиять на это, это то, что я подключаюсь к нечетному порту. Поэтому мой URL-адрес – www.domain.com:port. Номер порта создает сертификат – несоответствие имени домена?
Теперь я использовал утилиту конфигурирования iPhone для добавления профиля конфигурации в телефон. Он имеет мой корневой сертификат, сертификат ca и сертификат сайта. Профиль на телефоне говорит о его подтверждении. В деталях я вижу три моих сертификата. Но когда я пытаюсь подключиться, я все равно получаю недоверенную ошибку сертификата. Какие-либо предложения?
- Получить список сертификатов из хранилища сертификатов в C #
- веб-просмотр android с сертификатом клиента
- Как решить «Не удалось установить доверительные отношения для безопасного канала SSL / TLS с полномочиями»
- Ошибки консоли. Не удалось загрузить ресурс: net :: ERR_INSECURE_RESPONSE
- Не удалось создать путь PKIX: не удалось найти допустимый путь сертификации для запрошенной цели
Просто пытаюсь выяснить, сможет ли кто-нибудь еще помочь в этом?
- Преобразование традиционного частного ключа PEM в закрытый ключ PKCS8
- Как преобразовать файл .pfx в хранилище ключей с помощью закрытого ключа?
- Проверьте цепочку сертификатов с помощью проверки openssl
- Как создать самозаверяющий сертификат с openssl?
- Как предоставить ASP.NET доступ к закрытому ключу в сертификате в хранилище сертификатов?
- Преобразование сертификата CERT / PEM в сертификат PFX
- Как правильно импортировать самоподписанный сертификат в хранилище ключей Java, доступное для всех приложений Java по умолчанию?
- Как отключить предупреждение ненадежного соединения Firefox с использованием Selenium?
Существует поддерживаемый 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, если это необходимо, и т. Д.