IBM Worklight 5.0.6: прямое обновление — SSLHandshakeException

Мое приложение подключается к серверу Worklight через HTTPS через самозаверяющий сертификат. Приложение может быть успешно запущено.

Однако, когда есть прямое обновление, которое начало загрузку файла с сервера Worklight, это не удается, и я вижу, что есть сообщение об ошибке, касающееся пути сертификации, который не найден.

Могу ли я узнать, связаны ли SSLHandshakeException и ошибка прямого обновления? Спасибо!

(Среда: Worklight 5.0.6.1, WAS ND 8.5, тестовое устройство: HTC One)

10-31 21:24:50.897: W/System.err(28746): Catch exception while startHandshake: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
10-31 21:24:50.897: W/System.err(28746): return an invalid session with invalid cipher suite of SSL_NULL_WITH_NULL_NULL
10-31 21:24:50.927: E/WLDroidGap(28746): Failed downloading application update file.

person red23jordan    schedule 31.10.2013    source источник


Ответы (2)


Да, использование прямого обновления и ошибки рукопожатия SSL связаны. Android не позволяет вам работать с самозаверяющими сертификатами (если вы каким-то образом не обходите SSL). Поскольку вы не можете установить самозаверяющий сертификат в хранилище доверенных сертификатов Android, клиент Android не может установить доверие для самозаверяющего сертификата сервера.

Вероятно, в вашем файле манифеста Android указан следующий флаг:

android:debuggable="true"

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

Вместо этого вы должны использовать самозаверяющие сертификаты CA для целей разработки/тестирования. См. следующий ответ о том, как создать самозаверяющий ЦС: https://stackoverflow.com/a/19841469/2494287

person lizet    schedule 07.11.2013

Прямое обновление не будет работать с самозаверяющим сертификатом. Он предназначен для использования в производстве, поэтому принимает только действующий сертификат CA.

person Anton    schedule 05.11.2013