2015-02-12 1 views
1

Я разрабатываю мобильное приложение, которое включает в себя анализ данных из объекта JSON через Kimono Labs. У меня возникает проблема, когда речь заходит о SSL и сертификатах при доступе к API в Kimono Labs.Исключение в SSL с помощью запроса GET с использованием заголовка «Удостоверение подписчика» с лабораториями кимоно

Согласно Kimono Labs, вызов API требует установки заголовка заголовка «Authorization: Bearer» при вызове.

GET запрос Вызов API авторизации с использованием запроса GET только как вызов любого кимоно апи, но дополнительно нужно передать ваш маркер безопасности в заголовке запроса аутентификации, например, так: Authorization: Bearer {YOUR_SECURE_TOKEN}

Я использую следующий код, чтобы получить InputStream

HttpUriRequest request = new HttpGet(apiURL); 
request.addHeader("authorization", "Bearer " + securityToken); 
HttpClient httpclient = new DefaultHttpClient(); 
InputStream is = httpclient.execute(request).getEntity().getContent(); 

Выполнение этого кода дает мне исключение: javax.net.ssl.SSLPeerUnverifiedException: Нет сертификат партнера

В качестве альтернативы я попытался реализацией с помощью следующего кода:

URL url = new URL(apiURL); 
urlConnection = (HttpURLConnection) url.openConnection(); 
urlConnection.setRequestProperty("Authorization", "Bearer " + securityToken); 
urlConnection.setRequestMethod("GET");  urlConnection.setConnectTimeout(activity.getResources().getInteger(R.integer.internet_timeout)); urlConnection.setReadTimeout(activity.getResources().getInteger(R.integer.internet_timeout)); 
InputStream inputStream = urlConnection.getInputStream(); 

С помощью этого кода я имеющий javax.net.ssl.SSLHandshakeException исключения: java.security.cert.CertPathValidatorException: Целевой якоря для пути сертификации не найденный.

Любые идеи?

Я могу «взломать» решение, разрешив все сертификаты через CustomTrustManager и CustomAllVerifier, возвращающие true для всех попыток, но слышал, что это абсолютно небезопасно и не рекомендуется для производства. Это правда в моем случае?

Заранее спасибо.

ответ

0

Я столкнулся с той же проблемой, что и сборка node.js с использованием кимоно как api. Проблема в том, что промежуточному подписанному сертификату не доверяет Mozilla, ergo nodejs выбрасывает листовую ошибку.

Я решил это, выполнив следующее: найдите, какой сертификат используется, загрузите его и добавьте его в свои корневые ЦС, прежде чем делать запрос к кимоно, его чертовски много безопаснее, чем отключить TLS/SSL проверки безопасности.

+0

Я отдам это голова! Спасибо за это предложение. Я дам вам знать, как это происходит. Несколько нового для SSL и CA. –

+0

после проверки кода я заметил, что могу просто принять все запросы, если это имя хоста kimonolabs.com. Считаете ли вы, что это также жизнеспособное решение? общественного класс KimonoVerifier реализует HostnameVerifier { @Override общественных логических проверить (String имя хост, SSLSession сессия) { если (hostname.equals ("www.kimonolabs.com") { возвращающих; } еще возвращает ложь; } } –

0

Просто голова вверх! Оказалось, что это временная проблема с сервером кимонолабов.