Android - потоковое видео через локальный HTTPS-сервер: SSL-сертификат отклонен - PullRequest
8 голосов
/ 20 октября 2011

Мне нужно потоковое видео через локальный HTTPS-сервер (конечно, чтобы сделать некоторые фоновые DRM) в Android. Затем медиаплеер Android подключается к локальному серверу и «транслирует» видео на экран.

Все отлично работает с HTTP-сервером, но как только я включаю SSL, видеопроигрыватель останавливается.

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

Есть ли способ отключить строгую обработку сертификатов для модуля медиаплеера? Я видел много постов о том, как это сделать, используя мое собственное соединение HTTP, но ничего о том, как это сделать для медиаплеера.

Спасибо!

ОБНОВЛЕНИЕ: Google для «интранет-сертификат» или «мгновенный сертификат», и вы найдете то, что должно работать. Попробую завтра и выложу ответ здесь.

1 Ответ

0 голосов
/ 10 июня 2012

Вы должны попробовать это наверняка ,

    // Create a trust manager that does not validate certificate chains
    TrustManager[] trustAllCerts = new TrustManager[]{
        new X509TrustManager() {
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
            public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
            public void checkServerTrusted(
                java.security.cert.X509Certificate[] certs, String authType) {
            }
        }
    };

    // Install the all-trusting trust manager
    // Try "SSL" or Replace with "TLS"
    try {
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, trustAllCerts, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    } catch (Exception e) {
    }

    // Now you can access an https URL without having the certificate in the truststore 
           // Your Code Goes Here

Вот другие решения для этого
Проверка сертификата в соединении HTTPS
Android: доверие SSL-сертификатов
https://stackoverflow.com/a/6378872/1008278

...