当前位置: 首页 > 面试题库 >

Android上的自签名SSL接受

暴招
2023-03-14
问题内容

如何在Android上的Java中接受自签名证书?

一个代码示例将是完美的。

我在Internet上到处都是,虽然有人声称找到了该解决方案,但它要么不起作用,要么没有示例代码来对其进行备份。


问题答案:

我在exchangeIt中具有此功能,该功能可通过WebDav连接到Microsoft Exchange。这是一些创建HttpClient的代码,该HttpClient将通过SSL连接到自签名证书:

SchemeRegistry schemeRegistry = new SchemeRegistry();
// http scheme
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
// https scheme
schemeRegistry.register(new Scheme("https", new EasySSLSocketFactory(), 443));

HttpParams params = new BasicHttpParams();
params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);

EasySSLSocketFactory在这里,EasyX509TrustManager在这里。

对于exchangeIt的代码是开源的,并在托管googlecode上这里,如果您有任何问题。我不再积极从事此工作,但是代码应该可以工作。

请注意,自Android 2.2以来,此过程有所更改,因此请选中此复选框以使上面的代码正常工作。



 类似资料:
  • 问题内容: 我正在尝试将Android应用连接到使用自签名证书的启用SSL的服务器。我已经阅读了数十个教程,并且该应用程序现在正在接受证书并连接到服务器,但是我再也收不到任何数据。 我用来初始化套接字的原始代码是这样的: 之后,接收器线程的运行循环使用 socket.getInputStream() 访问输入流。只要我使用未加密的连接,它就可以正常工作。但是安全连接不会从套接字 检索任何数据 。我

  • 我正在尝试使用Windows10上的Express.js的自签名证书在localhost上设置站点。下面是Express.js服务器代码。 index.js 我还将certificate authority ca.crt文件导入到chrome中,并重新启动了chrome。但chrome上仍有错误,如下所示: OpenSSL:1.1.0e 2017年2月16日 节点:7.7.1 Windows 10

  • 我正在为一个tomcat实例修补RH Linux7上的自签名证书,但有一段时间,我没有浏览器警告。我在这里遵循了这些人的说明(让Chrome接受自签名的本地主机证书),并尝试使用KeyTool将.crt导入到我的tomcat实例中。使用以下命令- 创建密钥库-keytool-keysize 2048-genkey-alias tomcat-keyalg RSA-keystore tomcat.ke

  • 我在理解SSL方面有点困难,即自签名vs认证。 首先,我的假设是自签名证书仍然会提示常见的浏览器警告消息吗? 其次,来自https域的数据不会传输到超文本传输协议域,对吗?所以如果我的网站在domain.com,我的api在api.domain.com,我需要两个证书,并为https设置它们? 最后,我注意到像StartSSL这样的网站上有免费的SSL证书。这让人觉得可疑,因为在其他网站上获得证书

  • 问题内容: 它看起来像一个标准问题,但是我在任何地方都找不到清晰的方向。 我有Java代码试图连接到可能带有自签名(或过期)证书的服务器。该代码报告以下错误: 据我了解,我必须使用keytool并告诉java允许这种连接是可以的。 解决此问题的所有说明均假定我完全精通keytool,例如 生成服务器的私钥并将其导入密钥库 是否有人可以发布详细说明? 我正在运行Unix,所以bash脚本是最好的。

  • 我正在遵循这些准则使用OpenSSL生成自签名证书。 有人有办法解决这个问题吗?该文件存在,并且其在conf文件中的路径名正确...