Windows Phone 8 и HTTPS/SSL

Мне нужно подключиться к веб-сервису через HTTPS в моем приложении Windows Phone 8.0. Кажется, что нет поддержки SSL-клиента от Microsoft об этой проблеме.

Мне действительно нужно знать, как обращаться с сертификатами в WP8. Каков правильный сертификат? Какие сертификаты необходимо импортировать?

Сценарий: у меня есть конечная точка https: https://10.1.1.2, и когда я подключаюсь к нему с моего ПК, мне предлагается просмотреть и установить сертификат сервера. Имя сертификата "Корневой ЦС" сохраняется локально. Тот же сертификат устанавливается в мобильном устройстве без проблем. Когда я открываю https://10.1.1.2 из мобильного интернет-исследователя, он сообщает мне, что веб-страница защищена, и мне нужно выбирать между закрытием и продолжением страницы. Я нажимаю continue и транзакция https://10.1.1.2 имеет место. Каждый раз, когда я перехожу к одному и тому же URL-адресу через мобильный интернет-проводник, для пользователя не возникает предупреждения о безопасности.

В соответствии с Microsoft: в большинстве случаев вам не нужно ничего делать для включения этого для вашего приложения Windows Phone, за исключением использования адрес, который начинается с схемы протокола https://. Windows Затем телефон проверяет сертификат, который возвращается в Интернете. службы, и если сертификат принадлежит одному из доверенных органов перечисленные в корневых сертификатах SSL для Windows Phone OS 7.1, Windows Затем платформа приложения для телефона использует сертификат в сочетании с веб-службы для шифрования всех дальнейших сообщений, включая обмен учетными данными аутентификации, как описано ранее. Хотя вы можете установить доверенные сертификаты на Windows Phone, в текущая версия, платформа приложений Windows Phone не раскрывает эти значения сертификатов для приложений. В результате в текущем релиз, вы не можете реализовать сценарии взаимной аутентификации - сценарии, в которых клиент отправляет свои собственные сертификаты в Интернет службы в дополнение к получению одного - использование установленных сертификатов в корневом хранилище.

Итак, это процедура ОК? Я не могу использовать один из сертификатов, который Microsoft доверяет по умолчанию. Нужен ли мне код?

Ответ 1

Самоподписанный сертификат нельзя использовать, и он не автоматически извлекает данные без вмешательства.

Ответ 2

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

Во-вторых, использование самозаверяющих сертификатов на WP8, по-видимому, сильно ограничено тем фактом, что любая цепочка сертификатов, которая не использует встроенный корневой ЦС, приведет к сбою проверки сертификата в вашем коде. См. Запись в блоге MSDN по адресу http://blogs.msdn.com/b/davidhardin/archive/2010/12/30/wp7-and-self-signed-ssl-certificates.aspx

В тех случаях, когда он заявляет: "Вы можете внедрить свой собственный центр сертификации с помощью служб сертификации Microsoft, но вам все равно потребуется сертификат от одного из органов сертификации телефонов, чтобы связать ваш центр сертификации."

Единственное "решение", которое я видел, это эффективно игнорировать все предупреждения сертификатов - это вообще не решение.