我需要在Android中通过本地HTTPS服务器(当然要做一些后台DRM)流式传输视频。然后,Android媒体播放器连接到本地服务器,将视频内容“流式传输”到屏幕上。
这一切都适用于HTTP服务器,但只要启用SSL,视频播放器就会停止。
如果我使用浏览器从我的应用程序外部连接到HTTPS服务器,我会收到一条SSL警告,我可以忽略,然后启动视频播放器。
有没有办法禁用媒体播放器模块的严格证书处理?我已经看过很多关于如何使用我自己的HTTP连接进行此操作的帖子,但没有关于如何为媒体播放器执行此操作。
谢谢!
更新:谷歌的'内部网证书'或'即时证书',你会发现一些应该工作的东西。将在明天试一下并在这里发布答案。
答案 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?