我想从我的Android应用程序连接到基于node.js的TLS服务器。 当然它becouse我使用的是自签名证书失败。
反正我有可以将证书只需添加到我的应用程序,并有Android的信任它以某种方式? 请注意,我没有使用HTTPS,这是一个TLS通过TCP连接。
我想从我的Android应用程序连接到基于node.js的TLS服务器。 当然它becouse我使用的是自签名证书失败。
反正我有可以将证书只需添加到我的应用程序,并有Android的信任它以某种方式? 请注意,我没有使用HTTPS,这是一个TLS通过TCP连接。
大量的阅读周围后,我想出了一个答案。
一个非常不错的指南是在这里: http://nelenkov.blogspot.no/2011/12/using-custom-certificate-trust-store-on.html
现在,因为我没有使用HTTPS,我不得不拿出用于获取新的密钥库干净的SSL套接字稍微不同的方法:
KeyStore store = KeyStore.getInstance("BKS");
InputStream truststore = mainActivity.getResources().openRawResource(R.raw.trust);
store.load(truststore, "PASSWORD".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
tmf.init(store);
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), new SecureRandom());
Socket socket = context.getSocketFactory().createSocket(ip, port);
不建议将证书添加到您的应用程序。 你将有更新的证书问题。
你有没有看:
Android上的自签名SSL验收
HTTPS GET(SSL)与Android和自签署的服务器证书
?