任何人都可以告诉我们如何与安全性进行交互,从而使用Java客户端实现Riak KV Cluster。
我尝试用以下java代码与安全启用的riak集群进行交互,但是获取SSLEngine问题,下面是java代码......
InputStream inputStream = null;
KeyStore ks = null;
try {
inputStream = new FileInputStream("/etc/ssl/certs/rootCA.pem");
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
X509Certificate caCert = (X509Certificate) certFactory.generateCertificate(inputStream);
inputStream.close();
ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, "password".toCharArray());
ks.setCertificateEntry("cacert", caCert);
} catch (Exception e) {
e.printStackTrace();
}
synchronized (RiakConfig.class) {
List<RiakNode> riakNodeList = new ArrayList<RiakNode>();
for (final String riakServer : riakServerArray) {
RiakNode node = new RiakNode.Builder()
.withMinConnections(10)
.withMinConnections(50)
.withRemoteAddress(riakServer.split(":")[0])
.withRemotePort(Integer.parseInt(riakServer.split(":")[1]))
.withAuth("riakuser", "riakuser", ks)
.build();
riakNodeList.add(node);
}
cluster = new RiakCluster.Builder(riakNodeList).build();
cluster.start();
}
建议任何人我们怎么做?
得到SSLEngine问题
请始终提供您遇到的具体问题。 “获得SSLEngine问题”是一个无用的信息。
基于this document,您似乎正在使用正确的步骤。如果没有关于您遇到的安全问题的更多信息,则无法提供进一步的帮助。您很可能没有正确设置证书。 RabbitMQ文档包含一个comprehensive TLS/SSL troubleshooting guide,可以帮助您确定您的证书是否正确创建。
此外,我建议您查看Riak Java Client如何设置证书然后使用它们。
这部分Makefile
是使用keytool
进口证书的地方:
https://github.com/basho/riak-java-client/blob/develop/Makefile#L43-L62
这是一个使用密钥库创建连接以在测试中使用的类:
实际上,这对单节点工作正常,在集群中我面临SSL引擎问题。