首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OkHttp3: SSL证书不被识别为有效证书

OkHttp3: SSL证书不被识别为有效证书
EN

Stack Overflow用户
提问于 2017-03-01 12:22:02
回答 1查看 747关注 0票数 0

我使用Retrofit2RxJava2OkHttp3一起对内部服务器进行HTTPS调用,以测试SSL证书,但我总是得到一个异常,声明:

HTTP FAILED: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

根据Google文档,可能出现这种情况有三个原因(未知CA、自签名证书或服务器配置缺失中间CA)。

我不能发布URL,因为它是一个内部测试服务器,但是在我的计算机上或我的手机上以Chrome打开浏览器中的URL很好,这就是我从证书中看到的:

因此,我认为它不可能是选项1,因为浏览器识别证书,只有我的应用程序和OkHttp看起来并非如此,而且由于它不是自签名证书,所以选项2也不应该是原因。

这就是我的OkHttp客户端是如何由Dagger提供的

代码语言:javascript
复制
@Provides
@PerApplication
OkHttpClient provideOkHttpClient(@ApplicationContext Context context) {
    int cacheSize = 10 * 1024 * 1024; // 10 MiB

    File cacheDirectory = new File(context.getCacheDir().getAbsolutePath(), "HttpCache");

    ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
            .tlsVersions(TlsVersion.TLS_1_2)
            .cipherSuites(
                    CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
                    CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                    CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256)
            .build();

    OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder()
            .connectionSpecs(Collections.singletonList(spec))
            .readTimeout(60, TimeUnit.SECONDS)
            .connectTimeout(10, TimeUnit.SECONDS)
            .cache(new Cache(cacheDirectory, cacheSize));

    if (BuildConfig.DEBUG) {
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        httpClientBuilder.addInterceptor(loggingInterceptor);
    }

    return httpClientBuilder.build();
}

我添加了CollectionSpec来定义我使用的是TLS1.2,但是这并没有什么区别,我仍然收到了信任锚错误。

为了使用ssl证书,还有什么需要设置的吗?您知道证书为什么不被接受吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-01 13:29:38

问题自行解决,服务器的URL不正确。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42531600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档