我开发了一个应用程序,该应用程序可以访问受保护的URL。当我使用“ https”访问此URL时,我在模拟器中得到“证书已过期”或在真实设备中得到“证书失败验证”。以下是代码片段:

String loginUrl= "https://myhost.com/somefile";
 HttpConnection httpConn = null;
                DataOutputStream dataOS = null;
                System.out.println("strModuleName.trim()::::"
                        + strModuleName.trim());

                httpConn = (HttpConnection) Connector.open(loginUrl);//, Connector.READ_WRITE);
                httpConn.setRequestProperty("User-Agent",
                        "Profile/MIDP-2.0, Configuration/CLDC-1.0");
                httpConn.setRequestProperty("Connection", "Keep-Alive");
                httpConn.setRequestProperty("Content-Language", "en-US");
                httpConn.setRequestMethod(HttpConnection.POST);
                dataOS = (DataOutputStream) httpConn.openDataOutputStream();

最佳答案

如果使用的是HTTPS,则设备需要验证服务器(myhost.com)已安装的证书链。如果证书已过期,则需要将此信息告知网站管理员,以便他可以对其进行修复。

如果证书链正确,则设备必须针对设备本身已安装的证书进行验证。通常,移动设备会获得主要证书颁发机构(Verisign等)的证书。但是,如果设备中未安装服务器的证书,则需要先安装它以建立HTTP连接。

09-15 21:47