在 IBM MobileFirst android 中使用自签名证书时出现问题

Issue in using a self signed certificate in IBM MobileFirst android

我正在尝试从我的 android 应用程序连接到 https mobilefirst 服务器。使用自签名证书但不确定它是否是自签名 CA 证书。

我使用了以下代码。 证书文件名:mycer.der 我已将此证书放在资产文件夹中。

现在我使用以下代码来验证证书。

WLClient client= new WLClient(getApplicationContext()); client.pinTrustedCertificatePublicKey("dev1mfp.mtb.der");

但我仍然遇到以下错误

06-03 03:58:04.803 20647-20699/? W/System.err: javax.net.ssl.SSLPeerUnverifiedException: Cannot verify hostname: 00.00.00.00 06-03 03:58:04.803 20647-20699/? W/System.err: at android.net.SSLCertificateSocketFactory.verifyHostname(SSLCertificateSocketFactory.java:205) 06-03 03:58:04.803 20647-20699/? W/System.err: at android.net.SSLCertificateSocketFactory.createSocket(SSLCertificateSocketFactory.java:443) 06-03 03:58:04.803 20647-20699/? W/System.err: at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:394) 06-03 03:58:04.803 20647-20699/? W/System.err: at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:170) 06-03 03:58:04.803 20647-20699/? W/System.err: at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169) 06-03 03:58:04.803 20647-20699/? W/System.err: at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)

请建议我是否需要在我的代码中添加任何东西,或者证书有问题。

证书固定文档明确指出不支持自签名证书。您必须使用从证书颁发机构购买的证书:https://www.ibm.com/support/knowledgecenter/SSHSCD_7.1.0/com.ibm.worklight.dev.doc/monitor/c_cert_pinning_intro.html

我建议在尝试实施证书固定之前,您应该联系您的 IT 部门以验证证书的来源。这样你就不会浪费时间了。

此外,您的证书可能未使用正确的主机进行设置...您还需要检查它是否是使用正确的主机生成的。