我正在开发一个移动应用程序,通过Kimono实验室解析来自JSON对象的数据。在访问Kimono实验室的API时,我遇到了SSL和证书方面的问题。
根据Kimono实验室的说法,调用API需要在调用时设置头部“授权:承载”头。
使用GET请求调用auth的GET请求就像调用任何和服api一样,但您还需要在身份验证请求头中传递安全令牌,如下所示:授权:承载{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: javax.net.ssl.SSLHandshakeException信任锚,用于未找到的证书路径。
有什么想法吗?
我能够通过允许通过CustomTrustManager和CustomAllVerifier返回所有尝试的所有证书来解决这个问题,但是听说这是完全不安全的,不推荐用于生产。我的情况是这样的吗?
提前谢谢你。
发布于 2015-02-12 05:29:02
在使用和服和api构建node.js时,我遇到了完全相同的问题。问题是中间签名证书不受Mozilla的信任,因此将抛出一个叶错误。
我通过执行以下操作来解决这个问题,找到正在使用的证书,下载它的pem并在执行对和服的请求之前将它添加到您的根CA中,这比禁用TLS/SSL安全检查安全得多。
发布于 2015-02-17 02:08:38
只是提醒一下!原来这是和服服务器的暂时问题。
https://stackoverflow.com/questions/28469665
复制相似问题