Android javax.net.ssl.SSLHandshakeException:没有启用的协议
当我从我的nativscript应用程序调用http post到我的节点服务器时,我遇到了这个问题。我搞不懂这个错误消息是什么意思。我正在我的Android KitKat设备(API 19)上运行该应用程序 以下是我到目前为止在我的主要测试中尝试的内容:(编辑2)Android javax.net.ssl.SSLHandshakeException:没有启用的协议,android,ssl,https,angular2-nativescript,Android,Ssl,Https,Angular2 Nativescript,当我从我的nativscript应用程序调用http post到我的节点服务器时,我遇到了这个问题。我搞不懂这个错误消息是什么意思。我正在我的Android KitKat设备(API 19)上运行该应用程序 以下是我到目前为止在我的主要测试中尝试的内容:(编辑2) 该错误表明您需要启用SSLv3协议进行通信 转到您的jdk/jre/lib/security/java.security并从该列表中删除SSLv3协议 然后重新启动应用程序 我不同意。它只是说协议列表是空的。KitKat至少支持TLS
该错误表明您需要启用SSLv3协议进行通信 转到您的jdk/jre/lib/security/java.security并从该列表中删除SSLv3协议
然后重新启动应用程序 我不同意。它只是说协议列表是空的。KitKat至少支持TLSv1.0,因此不需要启用SSLv3。此外,您的答案只适用于PC上的JRE/JDK,而不适用于Android。嗨@Abhijeet,我可以知道如何导航到该文件夹吗?我好像找不到它。谢谢
System.err: javax.net.ssl.SSLHandshakeException: No enabled protocols; SSLv3 is no longer supported and was filtered from the list
System.err: at com.google.android.gms.org.conscrypt.SslWrapper.initialize(:com.google.android.gms@12521003@12.5.21 (000306-189987672):7)
System.err: at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(:com.google.android.gms@12521003@12.5.21 (000306-189987672):6)
System.err: at com.google.android.gms.org.conscrypt.KitKatPlatformOpenSSLSocketImplAdapter.startHandshake(:com.google.android.gms@12521003@12.5.21 (000306-189987672))
System.err: at com.android.okhttp.Connection.upgradeToTls(Connection.java:146)
System.err: at com.android.okhttp.Connection.connect(Connection.java:107)
System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294)
System.err: at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89)
System.err: at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:161)
System.err: at org.nativescript.widgets.Async$Http$HttpRequestTask.doInBackground(Async.java:543)
System.err: at org.nativescript.widgets.Async$Http$1.run(Async.java:482)
System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
System.err: at org.nativescript.widgets.Async$PriorityThreadFactory$1.run(Async.java:52)
System.err: at java.lang.Thread.run(Thread.java:841)
import { platformNativeScriptDynamic } from "nativescript-angular/platform";
import { AppModule } from "./app.module";
import { android as androidApp, AndroidApplication, AndroidActivityBundleEventData } from "application";
import { ad } from "utils/utils";
declare let com: any;
if (androidApp) {
const context = ad.getApplicationContext();
androidApp.on(AndroidApplication.activityCreatedEvent, function (args: AndroidActivityBundleEventData) {
let builder = new android.os.StrictMode.VmPolicy.Builder();
android.os.StrictMode.setVmPolicy(builder.build());
// Needed for corner cases with HTTP request using TSL on Android API19
com.google.android.gms.security.ProviderInstaller.installIfNeededAsync(
context,
new com.google.android.gms.security.ProviderInstaller.ProviderInstallListener({
onProviderInstalled: () => {
console.log("Provider Installed!");
const sslContext = javax.net.ssl.SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);
const engine = sslContext.createSSLEngine();
},
onProviderInstallFailed: (errorCode, intent) => {
console.log("Error: " + errorCode);
}
}));
});
}