Ошибка «Неверный сертификат сервера» в приложении iPhone - PullRequest
10 голосов
/ 22 августа 2009

Я использую приложение для iPhone на моем iPhone 3G OS 3.0.1 без каких-либо проблем. Приложение подключается к URL-адресу API на https://api.serverdensity.com/1.0/, и все запросы проходят через него.

Пользователь приложения сообщил, что теперь он внезапно получает ошибку «сертификат ненадежного сервера». Другие пользователи не сталкиваются с этой проблемой (о которой я знаю), и я не могу ее воспроизвести.

SSL-сертификат является групповым сертификатом на * .serverdensity.com. Он приобретен у GoDaddy и действителен до мая 2010 года.

Кроме того, пользователь работает под управлением ОС 3.0.1, на устройстве правильно установлены время и дата, и если он посещает URL-адрес API в Safari, он загружается правильно.

Какие-либо предложения по причине этого?

Ответы [ 8 ]

6 голосов
/ 27 августа 2009

Похоже, все проверяется с установкой сертификата. Все промежуточные сертификаты отправляются сервером: http://www.sslshopper.com/ssl-checker.html?hostname=api.serverdensity.com

6 голосов
/ 23 августа 2009

У меня была такая же проблема!

Вы устанавливали там "Промежуточный комплект сертификатов"? В противном случае вы получите сертификат ненадежного сервера на всех мобильных платформах (и на некоторых ПК).

Веб-сайт Цитата:

Перед установкой выданного SSL-сертификата необходимо загрузить и установить наш промежуточный комплект сертификатов на веб-сервере. Вы также можете скачать пакет из репозитория.

Ознакомьтесь с инструкциями по установке GoDaddy SSL для настройки вашего веб-сервера.

Промежуточный комплект сертификатов можно найти здесь .

4 голосов
/ 09 октября 2010

Пожалуйста, проверьте настройку даты и времени вашего iPhone или iPod, если вы сталкиваетесь с ошибкой «сертификат ненадежного сервера».

После корректировки даты и времени с iPhone / iPod в «Настройки». Он автоматически позаботится о том, чтобы все приложения (например, Yahoo Messenger, Citrix, Push mail .... и т. Д.) Сталкивались с проблемой «Сертификат недоверенного сервера». Просто дай попробовать. Надеюсь, это немного поможет вам. Спасибо.

3 голосов
/ 24 июля 2011

Ранние устройства iOS и Android поставлялись с базой данных корневых сертификатов размером меньше, чем на рабочем столе браузера. Вам необходимо объединить промежуточные сертификаты CA с сертификатом вашего сервера и сделать так, чтобы веб-сервер отправил их все на телефон. Более поздние выпуски для iOS и Android исправили это, добавив больше сертификатов на устройство.

2 голосов
/ 02 сентября 2009

Ранее мы использовали «жестко закодированный» метод аутентификации с использованием базового HTTP AUTH при подключении к нашему API:

NSString *requestURL = [NSString stringWithFormat:@"https://%@:%@@api.serverdensity.com/1.0/?account=%@.serverdensity.com&c=%@", username, password, account, command];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

но переключился на использование «правильного» метода в нашем последнем обновлении:

NSString *requestURL = [NSString stringWithFormat:@"https://api.serverdensity.com/1.0/?account=%@.serverdensity.com&c=%@", account, command];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestURL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0];

с использованием NSURLCredential для правильной обработки HTTP-аутентификации. После этого обновления ошибка сертификата исчезла для соответствующего пользователя.

2 голосов
/ 23 августа 2009

Я действительно видел это с моим собственным приложением, которое также использует сертификат godaddy - и да, я установил промежуточные сертификаты на моем сервере.

Это редко, но это может случиться, если пользователь переходит на точку доступа Wi-Fi, которая прерывает свою страницу входа в систему при попытке подключения. Это на самом деле правильное поведение для SSL, и оно вызвано тем, что точка доступа эффективно выполняет перенаправление «человек посередине» для вашего URL.

Они могут это исправить, сначала зайдя в Safari и установив соединение.

Предполагается, что OS3.0 будет выполнять автоматический вход в эту точку доступа, но по моему опыту это не всегда работает.

edit: чтобы добавить, прежде чем я использовал SSL, я использовал это, чтобы обнаружить это для простого http и выдать соответствующее сообщение об ошибке. Вероятно, целесообразно отловить эту ошибку в своем приложении и создать похожее сообщение «Возможно, вы подключены к точке доступа, требующей входа в систему» ​​и т. Д. Теперь, когда вы напомнили мне, мне нужно сделать это самостоятельно. приложение.

0 голосов
/ 08 июня 2011

Я бы подтвердил, что ваш телефон может загружать любые https: // URL без предупреждения. У меня старый iPhone 3.1.3, который по какой-то причине предупреждает о каждом сертификате, с которым он сталкивается. Не знаю, в чем причина, но это делает его практически бесполезным для тестирования моего веб-сервиса.

0 голосов
/ 23 августа 2009

Я видел то же сообщение об ошибке на взломанном тестовом телефоне, что и у меня, но не на других моих тестовых телефонах. Я никогда не исследовал это дальше, но думал, что упомяну, если это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...