У меня есть приложение, которое общается со многими разными сайтами, и каждый сайт имеет свой собственный сертификат SSL, подписанный нашим собственным внутренним центром сертификации. Это не позволяет нам приобретать SSL-сертификаты для каждого сайта (сотни или тысячи) и более безопасно, а затем использовать подстановочный сертификат с общим ключом на каждом из этих сайтов. Таким образом, в основном использование сертификата CA - единственный способ.
Сейчас у меня есть файл mobileprovision, который установит сертификат CA в качестве профиля на телефоне. Когда приложение iPhone запускается, если оно получает сообщение об ошибке SSL, оно перенаправляется в этот файл мобильного обеспечения через Safari, и пользователю будет предложено установить CA.
Проблема в том, что я обеспокоен тем, что Apple AppStore может отрицать мое приложение для этого (просто некоторые отзывы от других разработчиков на данном этапе), и я хотел исследовать другие способы достижения этого.
В основном, что мне нужно сделать, это разрешить SSL-соединение, которое будет проверяться против специального сертификата CA, который будет встроен в мое приложение. Это сделает сертификат ЦС активным только для вызовов, которые я делаю. Я использую стандартные методы NSURLConnection для связи с сервисом.
Возможно ли это? Может ли кто-нибудь показать мне, как загрузить CA (какая форма PEM?) И добавить его в список доверенных сертификатов CA для моего приложения? Если это невозможно, какие у меня есть другие варианты? Просто доверять всем сертификатам на самом деле не какой-либо вариант, мы хотим предотвратить попадание людей в средние атаки и доверять только нашим сертификатам CA.
Спасибо!