Android:在执行URL.Connect时绕过安全证书检查

时间:2011-02-14 18:34:12

标签: java android security

我正在开发Android应用程序,作为其中的一部分,我必须连接到HTTPS主机.. 该主机使用Android无法识别的安全证书! 这是一个有效的证书,但不受Android信任......

系统特别引发安全例外:证书不受信任

我的代码如下所示:

Url = new URL("https://example.com");
url_connection = (HttpsURLConnection) Url.openConnection();
url_connection.connect(); // This is where the exception is raised !

由于例外,连接未打开! 我想跳过证书验证...或者不管怎样,不应该引发异常并且连接应该打开...

我将在成功连接后在下一步验证证书..这是我的应用程序的一部分,因此在连接期间我想跳过这个..

我搜索过类似的问题,但没有一个答案适合我... 我尝试过创建自己的SSL工厂和本地信任管理器的方法,但它根本不起作用...... 当我执行以下操作时,我得到异常NoSuchAlgorithmException:

ssl_context = SSLContext.getInstance("SSL"); // OR TSL for that matter..

由于这个原因,我无法继续...请帮助......

主要问题是例外......如果连接出现错误或警告,那么它也没问题......

请注意:我不想将证书导入设备,因为这是不可行的解决方案......否则所有用户都必须经过这个手动步骤.. 所以,我想以编程方式验证证书并建立连接......

2 个答案:

答案 0 :(得分:0)

你的意思是TLS?您是否确实指定了TLSTSL输入错误?

我想您可以尝试其他SSLContext名称,请参阅SSLContext Algorithm names,但SSL或TLS应该返回一些内容。

答案 1 :(得分:0)

您是否无法获得由认可的CA签署的主机证书?这比编程方式简单得多,这可能会带来安全风险。