【问题标题】:Retrofit2 and certificate pinningRetrofit2 和证书固定
【发布时间】:2016-09-21 14:59:28
【问题描述】:

在我的 android 应用程序中,我想在与服务器通信时使用证书固定。 我看到这段代码使用了存储在raw 文件夹中的keystore

OkClient client = new RetrofitClientBuilder()
.pinCertificates(getResources(), R.raw.keystore, STORE_PASS)
.build()

我正在使用retrofit2OkHTTP3 并且刚刚看到了这个例子:

 OkHttpClient client = new OkHttpClient.Builder()
    .certificatePinner(new CertificatePinner.Builder()
            .add("publicobject.com", "sha1/DmxUShsZuNiqPQsX2Oi9uv2sCnw=")
            .add("publicobject.com", "sha1/SXxoaOSEzPC6BgGmxAt/EAcsajw=")
            .add("publicobject.com", "sha1/blhOM3W9V/bVQhsWAcLYwPU6n24=")
            .add("publicobject.com", "sha1/T5x9IXmcrQ7YuQxXnxoCmeeQ84c=")
            .build())
    .build();

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://api.nuuneoi.com/base/")
    .addConverterFactory(GsonConverterFactory.create())
    .client(client)
    .build();

后一种方法是否达到与第一种方法相同的结果?

【问题讨论】:

    标签: android retrofit2 okhttp3


    【解决方案1】:

    我可以说这种方法对我来说非常有效。 只需确保在没有“https://”的情况下将端点正确添加到证书固定器,它应该可以正常工作。

    【讨论】:

      【解决方案2】:

      您应该需要将 sha1/ 更改为 sha256/ ,它对我很有效。

      【讨论】:

        猜你喜欢
        • 2017-12-17
        • 1970-01-01
        • 2018-10-28
        • 2020-06-01
        • 2017-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多