Проблема с SSL-сертификатом в Android для веб-службы Salesforce

Получающий:

javax.net.ssl.SSLPeerUnverifiedException: нет ошибки однорангового сертификата в Android для веб-службы.

Я анализирую проблему, связанную с отсутствием сертификата в моем хранилище ключей. Это «https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8» находится в моей организации Salesforce, но как мне получить сертификат от Salesforce, который я могу добавить в свое хранилище ключей в Android?

Ниже мой каталог, если кому-то он покажется полезным.

Я проверил эту ссылку ""Нет ошибка однорангового сертификата в Android 2.3, но НЕ в 4», но перед этим мне нужен сертификат в моей необработанной папке, как мне это сделать без какого-либо сертификата. Мне нужен сертификат клиента Salesforce в моем приложении.

`08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕
 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ 
 at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSesionImpl.java:146)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at  org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:92)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at  org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:387)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
 08-13 10:53:04.150    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at scrapos.techila.com.scrapos.MainActivity$RequestDate.doInBackground(MainActivity.java:342)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at scrapos.techila.com.scrapos.MainActivity$RequestDate.doInBackground(MainActivity.java:311)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:287)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:137)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
 08-13 10:53:04.160    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
 08-13 10:53:04.170    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
 08-13 10:53:04.170    9152-9931/scrapos.techila.com.scrapos W/System.err﹕ at java.lang.Thread.run(Thread.java:856)
 08-13 10:53:27.240    9152-9152/scrapos.techila.com.scrapos W/IInputConnectionWrapper﹕ getSelectedText on inactive InputConnection
 08-13 10:53:27.240    9152-9152/scrapos.techila.com.scrapos W/IInputConnectionWrapper﹕ setComposingText on inactive InputConnection
 08-13 10:53:27.240    9152-9152/scrapos.techila.com.scrapos W/IInputConnectionWrapper﹕ getExtractedText on inactive InputConnection` 

person Dheeraj_Vashist    schedule 13.08.2015    source источник
comment
вы можете попробовать использовать http вместо https   -  person Ravi    schedule 13.08.2015


Ответы (1)


В Android есть список доверенных сертификатов CA, и вы можете увидеть его в настройках -> безопасность -> доверенные учетные данные. Старая версия андроида не имеет какого-то набора сертификатов ЦС и стала причиной такой ошибки. Вы можете изменить свой код на основе версии Android. Если версия ниже 2.3, то передайте сертификат, используя собственное хранилище доверенных сертификатов [пример доступен в сети], в противном случае используйте сертификат вашего центра сертификации.

person Naveen Ramawat    schedule 13.08.2015
comment
Я работаю над v 4.1.2, и я знаю, что мне не хватает этого сертификата, но мой вопрос заключается в том, как я могу получить этот сертификат клиента ssl от Salesforce. так что я могу добавить это в мое доверенное хранилище ключей. - person Dheeraj_Vashist; 13.08.2015