Сбой вызова PhoneGap Ajax на HTTPS-сервер с самозаверяющим сертификатом

Я относительно новичок в PhoneGap, и я недавно настроил HTTPS/SSL на моем сервере Windows Apache с самозаверяющим сертификатом и пытаюсь сделать HTTPS-запрос ajax пост. Запрос работает нормально, когда запускается в браузере, но не выполняется при запуске внутри телефонной пробелы. Я попытался установить Android: отладка на ложь, но это не решило проблему. Я также провел некоторое исследование, и кажется, что phonegap поддерживает HTTPS-запросы ajax, поэтому я не понимаю, почему запрос не выполняется.

Кто-нибудь знает, почему это может быть?

2 ответа

Решение

Это цитата Джо Боузера, который написал код, позволяющий самостоятельно подписывать сертификаты на PhoneGap Android:

  1. Если вы занимаетесь разработкой: android:debuggable="true" в манифесте, вы должны разрешить браузеру запрашивать данные с серверов с самозаверяющим или неверным сертификатом SSL.
  2. Если вы выпускаете приложение, вы должны удалить android:debuggable="true" (Android Market в любом случае не разрешит вам выпускать это), и вы НЕ сможете отправлять данные на сервер с неверным сертификатом SSL
  3. Если у вас не установлен этот флаг, по умолчанию будет то, что используется по умолчанию, то есть вы не сможете отправлять данные на серверы с самозаверяющим сертификатом.

Похоже, что вы должны быть в состоянии сделать то, что вы хотите, установив android:debuggable="true". Если это не работает для вас, нам нужно получить сценарий воспроизведения от вас, версию PhoneGap и версию Android, которую вы используете.

Вероятно, лучше всего поднять ошибку в Jira для нас:

https://issues.apache.org/jira/browse/CB#selectedTab=com.atlassian.jira.plugin.system.project%3Aissues-panel

Я потратил часы на эту проблему, пока не обнаружил, что возможно быстрое и грязное исправление. Это включает в себя переопределение CordovaWebViewClient игнорировать ошибки сертификата.

Другие вопросы по тегам