java连接副本集mongo,无法从JAVA连接到Mongo SSL副本集

我正在尝试使用SSL加密设置MongoDB的最新版本,我能够从mongo

shell连接,但是当我从

Java客户端连接时出现错误.

作品

mongo admin –host mongo1.xxxx.com –ssl –sslPEMKeyFile mongoClient.pem –sslCAFile mongoCA.crt

不行

public static void main(String args[]){

System.setProperty("javax.net.ssl.trustStore","/home/gasparms/truststore.ts");

System.setProperty("javax.net.ssl.trustStorePassword", "mypasswd");

System.setProperty("javax.net.ssl.keyStore", "/home/gasparms/truststore.ts");

System.setProperty("javax.net.ssl.keyStorePassword", "mypasswd");

System.setProperty("javax.security.auth.useSubjectCredsOnly","false");

MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true)

.build();

MongoClient mongoClient = new MongoClient("mongo1.xxxx.com",options);

System.out.println(mongoClient.getDatabaseNames());

}

我从Mongo方面得到这个错误:

2015-06-09T15:08:14.431Z I NETWORK [initandlisten] connection

accepted from 192.168.33.1:38944 #585 (3 connections now open)

2015-06-09T15:08:14.445Z E NETWORK [conn585] no SSL certificate

provided by peer; connection rejected 2015-06-09T15:08:14.445Z I

NETWORK [conn585] end connection 192.168.33.1:38944 (2 connections

now open) 2015-06-09T15:08:14.828Z I NETWORK [conn580] end connection

192.168.33.13:39240 (1 connection now open)

并在java客户端程序中

INFORMACIÓN: Exception in monitor thread while connecting to server

mongo1.xxxx.com:27017 com.mongodb.MongoSocketReadException:

Prematurely reached end of stream at

com.mongodb.connection.SocketStream.read(SocketStream.java:88) at

com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers(InternalStreamConnection.java:491)

at

com.mongodb.connection.InternalStreamConnection.receiveMessage(InternalStreamConnection.java:221)

at

com.mongodb.connection.CommandHelper.receiveReply(CommandHelper.java:134)

at

com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:121)

at

com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32)

at

com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription(InternalStreamConnectionInitializer.java:83)

at

com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:43)

at

com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)

at

com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127)

at java.lang.Thread.run(Thread.java:745)

创建证书

我有与mongo shell一起使用的mongoCA.crt和mongoClient.pem.然后,我想将.pem和.crt导入java密钥库

openssl x509 -outform der -in certificate.pem -out certificate.der

keytool -import -alias MongoDB-Client -file certificate.der -keystore truststore.ts -noprompt -storepass "mypasswd"

keytool -import -alias "MongoDB-CA" -file mongoCA.crt -keystore truststore.ts -noprompt -storepass "mypasswd"

我做错了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值