我正在开发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..
由于这个原因,我无法继续...请帮助......
主要问题是例外......如果连接出现错误或警告,那么它也没问题......
请注意:我不想将证书导入设备,因为这是不可行的解决方案......否则所有用户都必须经过这个手动步骤.. 所以,我想以编程方式验证证书并建立连接......
答案 0 :(得分:0)
你的意思是TLS?您是否确实指定了TLS
或TSL
输入错误?
我想您可以尝试其他SSLContext名称,请参阅SSLContext Algorithm names,但SSL或TLS应该返回一些内容。
答案 1 :(得分:0)
您是否无法获得由认可的CA签署的主机证书?这比编程方式简单得多,这可能会带来安全风险。