httpclient 和自签名证书的问题
Posted
技术标签:
【中文标题】httpclient 和自签名证书的问题【英文标题】:Problems with httpclient and selfsigned certificates 【发布时间】:2010-06-25 12:19:02 【问题描述】:我确定这个小组已经讨论过这个问题,但是我找不到那个帖子,所以请耐心等待,或者如果可能的话将它与原帖合并。
我正在为我的 android 应用程序使用 httpclient,并且我有一个本地站点,其中包含一些 https 页面。由于默认的 httpclient 不允许自签名证书,我使用的是 httpclient 中提到的“EasySSLFactory”和“EasyX509TrustManager” 文档。
client = new DefaultHttpClient();
client.getConnectionManager().getSchemeRegistry().register(new Scheme("https", new EasySSLSocketFactory(), 443));
问题是,如果我在我的 android 应用程序中使用此 SSLFactory,我会从我的网站的 https 页面获得正确的响应,但我会收到“SSL 握手失败:系统调用期间的 I/O 错误,未知错误:0”的网站例如“gmail.com”、“ymail.com”。如果我不使用 “EasySSLSocketFactory”我从这些网站得到响应,但我的网站却出现异常。
有趣的是,这个页面获取代码作为一个独立的 Java 应用程序运行良好。
可能是什么问题。请帮我解决这个问题。
感谢和问候
【问题讨论】:
【参考方案1】:暂时解决了,因为我只有一个证书,所以我把它放在模拟器的密钥库中。如果有人有更好的解决方案,请告诉我。
【讨论】:
以上是关于httpclient 和自签名证书的问题的主要内容,如果未能解决你的问题,请参考以下文章
PHP - 使用 STARTTLS 和自签名证书的 Swiftmailer