2016-07-25 2 views
0

Я разрабатываю приложение PhoneGap, которое потребляет веб-сервис через вызовы AJAX. Служба работает на HTTPS с использованием самоподписанного SSL-сертификата. Я пытался редактировать config.xml различными способами, используя cordova-plugin-whitelist v1.2.1Приложение Phonegap с запросом CORS через HTTPS с использованием самозаверяющего сертификата

доступа происхождения = "*"

и

позволяют-Намерение HREF = "HTTP: // */*"
позволяют-намерение HREF = "https: // */*"
позволяют-навигации HREF = "HTTP: // */*"
позволяют-навигации HREF = "https: // */*"

После некоторого копания я узнал, что использование самозаверяющих сертификатов в приложении PhoneGap может привести к ошибке SSL, которая не отображается при запуске приложения, что приводит к отсутствию вызовов AJAX (хотя на Android , удивительно, все работает, проблема существует на устройствах iOS и WP8/10). Я читал об переопределении процедур «onSSLError» в источниках приложений, и это делало работу моего приложения, но я должен загрузить это приложение в магазины, то есть я не могу использовать это обходное решение. С другой стороны, я стараюсь уклониться от необходимости выдавать санкционированный сертификат SSL, потому что он стоит. Я решил вручную установить свой сертификат на тестовые устройства до установки фактического приложения. Я сделал это, но это не помогло - приложение по-прежнему не имеет сетевого подключения и не может использовать удаленный сервис.

Итак, мой вопрос: кто-нибудь пытался использовать вручную установленные самозаверяющие сертификаты с приложениями PhoneGap и действительно ли он работал?

+0

его также не сработало для меня. –

+0

Вы можете получить действительные сертификаты для доменов, которыми вы владеете бесплатно, с letencrypt: https://letsencrypt.org/getting-started/ – Tom

ответ

0

После 24-часового исследования я наконец убедился, что устройства iPhone и WindowsPhone отклоняют самозаверяющие сертификаты даже в том случае, если они были установлены до установки приложения. Только Android позволяет разговаривать с HTTPS AJAX с непроверенными сертификатами.
Итак, ответ: если вы создаете приложение PhoneGap и хотите иметь защищенное HTTPS-соединение через AJAX, используйте сертификаты CA.