Будет ли 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];
}
  1. Мой первый вопрос: одобрит ли Apple этот подход? Это разрешенный и законный способ обработки HTTP-запросов при взаимодействии с сервером, использующим самоподписанный сертификат?

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

2 ответа

Люди делают это все время с приложениями Apple, к лучшему или к худшему, без отказа от магазина приложений. Однако более безопасным подходом было бы (1) использовать официально подписанный сертификат или (2) заставить ваше приложение принимать только ваш самоподписанный сертификат.

  1. Нет проблем с подходом, который может привести к отказу.
  2. Если запрос имеет тип POST, то данные будут зашифрованы. Но для большей безопасности вы можете добавить больше шифрования к вашим данным, если это необходимо.
Другие вопросы по тегам