Перейти к содержанию

Проверка SSL сертификатов сервера при установке Websocket соединения

По умолчанию, при установке безопасного Websocket соединения с сервером, Android SDK отдает проверку SSL сертификата сервера на уровень системы. В свою очередь, система сверяет сертификат с записями в хранилище сертификатов.

При этом, если на сервере, в целях отладки, установлен самоподписанный сертификат, он не пройдет проверку. Поэтому в сборке 1.0.1.73 добавлена опция сессии SessionOptions.trustAllCertificates (по умолчанию false). Чтобы принимать любые, в том числе самоподписанные сертификаты при установке соединения, необходимо установить данную опцию в true

SessionOptions sessionOptions = new SessionOptions(url);
sessionOptions.trustAllCertificates(true);

Пример использования

code

private CheckBox mTrustAllCer;
...
mTrustAllCer = (CheckBox) findViewById(R.id.trust_all_certificates_default);
...
/**
    * The options for connection session are set.
    * WCS server URL is passed when SessionOptions object is created.
    * SurfaceViewRenderer to be used to display video from the camera is set with method SessionOptions.setLocalRenderer().
    * SurfaceViewRenderer to be used to display preview stream video received from the server is set with method SessionOptions.setRemoteRenderer().
    */
SessionOptions sessionOptions = new SessionOptions(url);
sessionOptions.setLocalRenderer(localRender);
sessionOptions.setRemoteRenderer(remoteRender);
sessionOptions.trustAllCertificates(mTrustAllCer.isChecked());

Warning

Используйте это только для тестирования. Приложение, которое доверяет любым сертификатам, не пройдет модерацию Google Play (или любого альтернативного магазина приложений)