1

Retrofit を使用して Android で証明書のピン留めを使用しようとしています。Verisign が署名した有効な証明書を評価しようとしています。

次のエラーが表示されます。

HTTP が失敗しました: javax.net.ssl.SSLPeerUnverifiedException: 証明書に署名した信頼できる証明書が見つかりませんでした。

証明書ピンナーがデバイスの CA ルート証明書に対して評価できないのはなぜですか? デバイスの信頼にアクセスできませんか? または、デバイスの信頼に証明書チェーン全体が含まれていない可能性があります。しかし、SSL 通信が失敗しないのはなぜでしょうか?

// Pin Certificate
CertificatePinner certificatePinner = new CertificatePinner.Builder()
        .add("www.mydomain.com", "sha256/somerandompublickeystring")
        .build();

// To handle self-signed cert
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();

OkHttpClient client = clientBuilder.connectTimeout(120, TimeUnit.SECONDS)
        .writeTimeout(120, TimeUnit.SECONDS)
        .readTimeout(120, TimeUnit.SECONDS)
        .certificatePinner(certificatePinner)
        .build();
4

1 に答える 1