gpt4 book ai didi

android - android 上的 httpclient ssl 证书

转载 作者:太空狗 更新时间:2023-10-29 15:34:08 24 4
gpt4 key购买 nike

我在 Android 上使用 httpclient 使用 ssl 时遇到了一些问题 我正在尝试详细访问自签名证书 我希望我的应用程序信任所有证书(我将仅使用 ssl 进行数据加密)。首先,我尝试使用本指南 http://hc.apache.org/httpclient-3.x/sslguide.html在桌面上工作正常但在 android 上我仍然得到 javax.net.ssl.SSLException: Not trusted server certificate。在谷歌搜索后,我发现了一些其他如何启用 ssl 的示例。

http://groups.google.com/group/android-developers/browse_thread/thread/62d856cdcfa9f16e - 当我使用 URLConnection 但使用 HttpClient 时仍然出现异常。

http://www.discursive.com/books/cjcook/reference/http-webdav-sect-self-signed.html - 在桌面上使用来自 apache 的 jar 可以正常工作,但在 android 中使用包含在 SDK 类中的则无法正常工作。

http://mail-archives.apache.org/mod_mbox/hc-httpclient-users/200808.mbox/%3C1218824624.6561.14.camel@ubuntu%3E - 也得到同样的异常

所以任何想法如何使用 HttpClient 信任 android 上的所有证书

最佳答案

如果你碰巧看了 DefaultHttpClient 的代码,它看起来是这样的:

   @Override
protected ClientConnectionManager createClientConnectionManager() {
SchemeRegistry registry = new SchemeRegistry();
registry.register(
new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
registry.register(
new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));

ClientConnectionManager connManager = null;
HttpParams params = getParams();
...
}

注意 https 方案到 org.apache.http.conn.ssl.SSLSocketFactory.getSocketFactory() 的映射。

您可以为 org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory 接口(interface) ( http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/protocol/SecureProtocolSocketFactory.html ) 创建自定义实现,您可以在其中创建 java.net.SSLSocket 使用接受所有证书的自定义 TrustManager

您可能想在 http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/JSSERefGuide.html 上查看 JSSE 以获取更多详细信息

关于android - android 上的 httpclient ssl 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2864016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com