gpt4 book ai didi

android - OkHttp3,改造和证书固定 : how to give an expiration to the pinning

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:45 25 4
gpt4 key购买 nike

在我的 Android 应用程序中,我需要使用证书固定。我正在使用 RetrofitOkHttp3 来使用 Web 服务,并且我已经在证书的哈希码上定义了固定。

CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add("dummy.com", "sha256/xxxxxxxxxx=")
.build();

OkHttpClient httpClient = new OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.callTimeout(240, TimeUnit.SECONDS)
.readTimeout(240, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();


Retrofit retrofitKripton = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(KriptonBinderConverterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.client(httpClient).build();

我想强制证书固定直到证书到期,在此之后我只想避免证书固定(这是因为我想避免应用程序在证书到期后停止工作)。有没有一种方法可以告诉 OkHpttp3/Retrofit 具有所需的行为?

提前致谢

最佳答案

Is there a method to tell OkHpttp3/Retrofit to have the desired behaviour?

你可以自己做:

OkHttpClient.Builder = new OkHttpClient.Builder();

if (applyPins()) {
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add("dummy.com", "sha256/xxxxxxxxxx=")
.build();

builder..certificatePinner(certificatePinner);
}


OkHttpClient httpClient = builder
.callTimeout(240, TimeUnit.SECONDS)
.readTimeout(240, TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.build();

Retrofit retrofitKripton = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(KriptonBinderConverterFactory.create())
.addConverterFactory(ScalarsConverterFactory.create())
.client(httpClient).build();

applyPins() 实现为一个方法,如果您想应用引脚,则返回 true,否则返回 false。例如,您可以使用建议的日期比较。

关于android - OkHttp3,改造和证书固定 : how to give an expiration to the pinning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com