Мне нужна помощь,
Я пытаюсь внедрить SSLPinning в свое собственное приложение (v0.63).
я уже следую документации на странице OkHttp github
вот код, который я делаю для своего приложения:
public class CustomClientFactory implements OkHttpClientFactory {
@Override
public OkHttpClient createNewNetworkModuleClient() {
CertificatePinner certificatePinner = new CertificatePinner.Builder()
.add(BuildConfig.HOSTNAME, BuildConfig.SHA_PUBLIC_KEY_1)
.add(BuildConfig.HOSTNAME, BuildConfig.SHA_PUBLIC_KEY_2)
.add(BuildConfig.HOSTNAME, BuildConfig.SHA_PUBLIC_KEY_3)
.build();
OkHttpClient.Builder client = new OkHttpClient.Builder()
.connectTimeout(0, TimeUnit.MILLISECONDS)
.readTimeout(0, TimeUnit.MILLISECONDS)
.writeTimeout(0, TimeUnit.MILLISECONDS)
.cookieJar(new ReactCookieJarContainer())
.certificatePinner(certificatePinner);
OkHttpClient newClient = OkHttpClientProvider.enableTls12OnPreLollipop(client).build();
return newClient;
}
}
Окхттпцертпин:
public class OkHttpCertPin {
public static void rebuildOkHttpForSslPinning() {
OkHttpClientProvider.setOkHttpClientFactory(new CustomClientFactory());
}
}
и это мой метод onCreate для MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
OkHttpCertPin.rebuildOkHttpForSslPinning();
}
он позволяет выполнять все запросы, даже если я использую случайный открытый ключ и имя хоста.
что я сделал не так?
весь открытый ключ я получил от sslLabs