在 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 部门以验证证书的来源。这样你就不会浪费时间了。
此外,您的证书可能未使用正确的主机进行设置...您还需要检查它是否是使用正确的主机生成的。
我正在尝试从我的 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 部门以验证证书的来源。这样你就不会浪费时间了。
此外,您的证书可能未使用正确的主机进行设置...您还需要检查它是否是使用正确的主机生成的。