Android - 通过本地HTTPS服务器的视频流:SSL证书被拒绝

时间:2011-10-19 22:27:54

标签: android video ssl certificate

我需要在Android中通过本地HTTPS服务器(当然要做一些后台DRM)流式传输视频。然后,Android媒体播放器连接到本地服务器,将视频内容“流式传输”到屏幕上。

这一切都适用于HTTP服务器,但只要启用SSL,视频播放器就会停止。

如果我使用浏览器从我的应用程序外部连接到HTTPS服务器,我会收到一条SSL警告,我可以忽略,然后启动视频播放器。

有没有办法禁用媒体播放器模块的严格证书处理?我已经看过很多关于如何使用我自己的HTTP连接进行此操作的帖子,但没有关于如何为媒体播放器执行此操作。

谢谢!

更新:谷歌的'内部网证书'或'即时证书',你会发现一些应该工作的东西。将在明天试一下并在这里发布答案。

2 个答案:

答案 0 :(得分:0)

你应该试试这个

    // 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

以下是此更多解决方案
Certificate Validation in an HTTPS Connection
Android: Trusting SSL certificates
https://stackoverflow.com/a/6378872/1008278

答案 1 :(得分:0)

实际上是解决方案,添加此android:usesCleartextTraffic =“ true” 到清单中,因此它也允许连接到http,

解决方案来自:How to allow all Network connection types HTTP and HTTPS in Android (9) Pie?