Android 如何在使用改型发送请求时信任特定证书?

Android 如何在使用改型发送请求时信任特定证书?,android,android-studio,ssl-certificate,retrofit,Android,Android Studio,Ssl Certificate,Retrofit,我正在使用改装发送所有请求。目前我有信任所有证书的代码。但是现在我想信任一个特定的证书来发送所有Api请求。如何在使用改型发送请求时信任一个特定的证书。另外,我想知道在源代码中添加证书所需的格式。您可以尝试以下方法: CertificatePinner certPinner = new CertificatePinner.Builder() .add("your domain", "sha256/certificate_public_key") .build(

我正在使用改装发送所有请求。目前我有信任所有证书的代码。但是现在我想信任一个特定的证书来发送所有Api请求。如何在使用改型发送请求时信任一个特定的证书。另外,我想知道在源代码中添加证书所需的格式。

您可以尝试以下方法:

CertificatePinner certPinner = new CertificatePinner.Builder()
    .add("your domain",
          "sha256/certificate_public_key")
    .build();

OkHttpClient okHttpClient = new OkHttpClient.Builder()
    .certificatePinner(certPinner)
    .build();

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("your base url")
    .addConverterFactory(GsonConverterFactory.create())
    .client(okHttpClient)
    .build();

什么是sha256?您的证书的指纹。openssl x509-in path/your_certificate.cer-pubkey-noout | openssl pkey-pubin-outform der | openssl dgst-sha256-binary | openssl enc-base64除了证书固定之外,还有其他方法可以查看吗。这里都有。