java - 使用 Kimono Labs 的 Authorize Bearer header 的 GET 请求在 SSL 中的异常

标签 java android ssl ssl-certificate http-get

我正在开发一个移动应用程序,该应用程序涉及通过 Kimono Labs 从 JSON 对象解析数据。在访问 Kimono Labs 的 API 时,我遇到了 SSL 和证书方面的问题。

根据 Kimono Labs 的说法,调用 API 需要在调用时设置 header “Authorization: Bearer” header 。

GET Request Calling an auth API using a GET request is just like calling any kimono api, but you will additionally need to pass your secure token in the Authentication request header, like so: 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: No peer certificate

或者,我尝试使用以下代码实现:

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: Trust anchor for certification path not found。

有什么想法吗?

我能够通过 CustomTrustManager 和 CustomAllVerifier 允许所有证书对所有尝试返回 true 来“破解”解决它,但听说这是完全不安全的,不建议用于生产。我的情况是这样吗?

提前谢谢你。

最佳答案

我在使用 kimono 作为 api 构建 node.js 时遇到了完全相同的问题。问题是 Mozilla 不信任中间签名证书,ergo nodejs 会抛出叶错误。

我通过执行以下操作解决了这个问题,找到正在使用的证书,下载它的 pem 并将其添加到您的根 CA,然后再向 kimono 发出请求,这比禁用 TLS/SSL 安全性要安全得多检查。

关于java - 使用 Kimono Labs 的 Authorize Bearer header 的 GET 请求在 SSL 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28469665/

相关文章:

java - 如何将 DAO 和 GUI 与 MVC 结合在一起

android - 调用 ViewModel 实例会重置 LiveData 吗?

apache - 在本地主机上启用 SSL 不适用于自定义端口

ruby-on-rails - 在 Mac OS 上安装 Rails 失败并出现多个错误

android - webview nativescript 中的一些外部功能不起作用

apache - 使用 Apache 反向代理通过 SSL 的 WebSocket

java - 右移零填充运算符 >>> 在 Java : porting to C++

java.lang.NoClassDefFoundError : javax/mail/MessagingException unsolved 错误

java - 考虑所有数字对数字进行四舍五入

C# - 如何发布列表