android - SSL Android - AsyncHttpClient

标签 android security ssl certificate asynchttpclient

我正在构建一个连接到服务器并检索数据的 Android 应用程序。首先,我必须选择是使用 AsynchTask(带有 HttoClient)还是 AsynchHttpClient,我选择了 AsynchHttpClient。现在,实际上一切正常,但今天,当我调试其他东西时,我注意到调试器在我发送/检索数据时发出警告(我正在通过 https 执行所有操作)。调试器会说类似 Beware!使用修复程序是不安全的,因为它不验证 SSL 证书。我正在做一些挖掘,我在 AsynchHttpClient 类中发现了这条消息,它来自的实际部分在这里:

private static SchemeRegistry getDefaultSchemeRegistry(boolean fixNoHttpResponseException, int httpPort, int httpsPort) {
    if (fixNoHttpResponseException) {
        Log.d(LOG_TAG, "Beware! Using the fix is insecure, as it doesn't verify SSL certificates.");
    }

    if (httpPort < 1) {
        httpPort = 80;
        Log.d(LOG_TAG, "Invalid HTTP port number specified, defaulting to 80");
    }

    if (httpsPort < 1) {
        httpsPort = 443;
        Log.d(LOG_TAG, "Invalid HTTPS port number specified, defaulting to 443");
    }

我不太确定是指哪个修复程序。是的,我差点忘了,我读到这可能是因为我使用的是自签名证书(用于测试),但在我发布一些不安全的东西之前,我想我在这里问是否有人知道这条消息的确切含义

谢谢

最佳答案

也许您的证书有问题? 我使用这种方法在 Android 项目中添加我的证书。

    public static SSLContext getFactory() throws Exception {
    KeyStore trusted = KeyStore.getInstance("BKS");

    InputStream in = context.getResources().openRawResource(R.raw.myfile);

    try {
        // Initialisation de notre keystore. On entre le mot de passe (storepass)
        trusted.load(in, "mypassword".toCharArray());
    } finally {
        in.close();
    }


    TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
    tmf.init(trusted);

    SSLContext ssl_context = SSLContext.getInstance("SSL");
    ssl_context.init(null, tmf.getTrustManagers(), null);

    return ssl_context;
}

关于android - SSL Android - AsyncHttpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524074/

相关文章:

ssl - 在Jelastic中使用LetsEncrypt SSL

android - 游标或数据库未关闭错误

java - 在可跨越的字符串中搜索时,如何忽略要突出显示的字符的大小写?

java - 如何在onResume内判断设备是否已从 sleep 模式唤醒

Python 3.7 无法连接到 HTTPS URL,因为 SSL 模块不可用

node.js - Node.js 是否支持 HPKP/支持证书固定?

android - Phonegap navigator.geolocation.getCurrentPosition 出错

javascript - ES2015 模板字符串安全问题

java - Python 到 Java 加密 (RSA)

java - 火狐 "ssl_error_no_cypher_overlap"错误