Я начинаю свой вопрос, упоминая, что я пробовал до сих пор:
У меня нет сертификата в моем приложении, я использую только ключ SHA256. Для большинства ответов в Интернете требуется физический сертификат в приложении, чтобы загрузить его в хранилище ключей, у меня его нет.
Я получаю следующую ошибку:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
1) TrustKit Он должен скомпилировать SDK 24 и выше, но у меня есть 23 и многие библиотеки поддержки находятся в синхронизации с SDK 23, поэтому я не может изменить их все, это может привести к сбою моего приложения в какое-то время.
2) CWAC-NetSecurity Я реализовал это в своем коде без использования настроек безопасности Android N, я также придерживался инструкции, приведенной в git, но не смог передать sslSocketfactory Volley из него, он имеет пример с OkHTTP. поэтому он также дает ошибку выше.
Я пробовал это с помощью OKHttp CertificatePinner, он тоже не работает для меня. Такая же ошибка. Я также попытался передать hostNameVerifier и sslSocketFactory в HttpsUrlConnection, но такую же ошибку.
JsonObjectRequestSolaire jsonRequest = new JsonObjectRequestSolaire(method, URL, object, headers, responseListener, errorListener);
RetryPolicy policy = new DefaultRetryPolicy(TIMEOUT, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
jsonRequest.setRetryPolicy(policy);
jsonRequest.setShouldCache(false);
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.certificatePinner(new CertificatePinner.Builder()
.add("my_domain", "sha256/shaKey")//example.com
.add("my_domain", "sha256/shaKey")//also tried *.example.com
.build())
.build();
//HttpsURLConnection.setDefaultHostnameVerifier(okHttpClient.hostnameVerifier());
//HttpsURLConnection.setDefaultSSLSocketFactory(okHttpClient.sslSocketFactory());
RequestQueue requestQueue = Volley.newRequestQueue(activity.getApplicationContext(), new HurlStack(null, okHttpClient.sslSocketFactory()));
requestQueue.add(jsonRequest);
используя trustKit, мой парень iOS, и он работает для него.
Спасибо в Advance.
Пожалуйста, поделитесь своим ценным вводом здесь, чтобы я мог понять эту концепцию закрепления SSL.