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();