Будет ли Apple утверждать приложение, которое обменивается данными через HTTPS с использованием самоподписанного сертификата?
Я очень новичок в разработке мобильных приложений и HTTP. Пожалуйста, потерпите меня... Мне нужен ваш совет!
Приложение для iPhone связывается с сервером по протоколу HTTPS и использует самоподписанный сертификат.
Чтобы исправить ситуацию с предупреждением о ненадежности моего сервера, я использовал методы делегата NSURLConnection и этот подход:
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
{
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
}
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
Мой первый вопрос: одобрит ли Apple этот подход? Это разрешенный и законный способ обработки HTTP-запросов при взаимодействии с сервером, использующим самоподписанный сертификат?
При использовании вышеупомянутого подхода, чтобы дать свое согласие и все еще подключаться к ненадежному серверу, будут ли мои данные отправляться через HTTP и будут ли они зашифрованы?
2 ответа
Люди делают это все время с приложениями Apple, к лучшему или к худшему, без отказа от магазина приложений. Однако более безопасным подходом было бы (1) использовать официально подписанный сертификат или (2) заставить ваше приложение принимать только ваш самоподписанный сертификат.
- Нет проблем с подходом, который может привести к отказу.
- Если запрос имеет тип POST, то данные будут зашифрованы. Но для большей безопасности вы можете добавить больше шифрования к вашим данным, если это необходимо.