我正在使用OKHTTP3客户端使用Raturofit 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都是不正确的。谁能解释为什么?
几件事要检查,因为您已经编辑了零件很常见,所以我无法确定这些是您是否发行的,但是这两个错误都不会导致固定没有日志。
1)对于CertificatePinner
中的hostname
,请确保它只是主机名,例如" www.example.com",而不是url" https://www.example.com"。
2)对于.setEndpoint("xxxxxxxxxxxx")
,请确保您的端点是https
,在http
上没有证书,因此没有日志。