9

OKHTTP3 クライアントで Retrofit 1.9 を使用しており、証明書のピン留めを追加しようとしています。以下は関連するコードです。

String hostname = "xxxxxx.xx";

CertificatePinner certificatePinner = new CertificatePinner.Builder()
    .add(hostname, "sha1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=")
    .build();

OkHttpClient client = new OkHttpClient.Builder()
     .certificatePinner(certificatePinner)
     .build();

return new RestAdapter.Builder()
     .setRequestInterceptor(request -> {
         request.addHeader("CONTENT-TYPE", "application/json");
     })
     .setEndpoint("https://xxxxxxxxxxxx").
     .setClient(new Ok3Client(client))
     .build();

残念ながら、それは機能していないようです。私は持っていません

"javax.net.ssl.SSLPeerUnverifiedException: Certificate pinning failure!"

例外であり、ホストまたは SHA でさえ正しくありません。誰でも理由を説明できますか?

4

1 に答える 1

12

いくつかの確認事項があります。パーツを編集したため、間違いがよくあるため、これらが問題であるかどうかはわかりませんが、どちらの間違いもログなしで固定されません。

1) の場合は、URL " https://www.example.com "ではなく、"www.example.com" のような単なるホスト名であることを確認してhostnameください。 2) については、エンドポイントがであることを確認してください。証明書がチェックされていないため、ログはありません。CertificatePinner
.setEndpoint("xxxxxxxxxxxx")httpshttp

于 2016-12-14T15:42:23.497 に答える