无论如何我可以下载服务器的 SSL 证书并在尝试连接到它以在黑莓设备中发送数据之前对其进行验证?我正在使用((HttpsConnection)conn).getSecurityInfo();
,但它提供了一个没有太多有用信息的证书类型。当我试图检查类型时,它说net.rim.device.api.crypto.certificate.CertificateUtilities
。有什么办法可以将它转换为 X509 证书,以便我可以访问更多有用的信息?
3 回答
检查类net.rim.device.api.crypto.certificate.x509.X509Certificate
更新:
抱歉,我之前的回答是错误的:API 中有两个具有相同类名的接口:(net.rim.device.api.crypto.certificate.Certificate
从中X509Certificate
扩展)和javax.microedition.pki.Certificate
(J2ME 接口)。后者是您可以通过 HttpsConnection 检索的,它不是很有用。
所以你被 X509Certificate 构造函数困住了,要创建一个实例,你需要先从服务器下载证书,或者将它包含在你的应用程序资源中。在这个问题中,您可以看到如何从服务器下载证书: https ://serverfault.com/q/139728/87344 。但是,这可能不是您的选择。
您不需要事先下载它。它在握手期间发送,并在握手完成后通过 SSL 会话进行验证并提供给应用程序。
定期执行 WINDOWS 或 MICROSOFT UPDATE 并将其设置为永久更新,这样您就不需要手动执行了。如果更新认为合适,将自动安装 SSL 证书。我花了两个月的时间来解决这个问题,但结果是没有。手动更正您的时间(年、小时、分钟)或从控制面板的互联网时间同步中获取帮助 - 日期和时间 - 互联网时间 - 立即更新。然后转到开始 - Microsoft 更新或 Windows 更新。基本上这个问题是由于日期和时间错误而发生的。非常有趣的是,即使您以错误的方式设置时间,此证书错误也会在极少数情况下自动消失。