小编jle*_*nts的帖子

使用mongo-java-driver使用x509证书对MongoDB v2.6进行身份验证时遇到问题

我很难使用x509证书连接到mongo v2.6,以便从Java/Groovy进行身份验证.我用ssl构建了mongo并觉得我已经正确配置了它.

我们的项目有两个连接到Mongo的应用程序 - 一个用NodeJS编写,另一个用Java/Groovy编写.NodeJS项目成功地使用X509证书和查询进行身份验证.另外,我可以通过指定ssl并在命令行上提供PEM文件来shell到mongo.但是,我无法使用Java Mongo驱动程序连接到mongo.我非常感谢一些帮助,以下是我迄今采取的步骤:

构建MongoDB 2.6以使用SCONS与ssl一起运行:

我从mongodb github页面下载了2.6版本的MongoDB

然后,使用scons构建它以包含ssl

scons --64 --dd --ssl all
scons --ssl --prefix=/opt/mongo  install
Run Code Online (Sandbox Code Playgroud)

为Mongo生成密钥::

我生成了以下密钥/证书

openssl req -new -newkey rsa:1024 -nodes -out myMongo.req -keyout myMongo.key -subj "/C=US/ST=myState/CN=myMongo/OU=myUnit/L=myLocation" -days 36500
openssl x509 -CA myCA.pem -CAkey myCa.key -CAserial myCa.srl -req -in myMongo.req -out myMongo.pem -days 36500
Run Code Online (Sandbox Code Playgroud)

这给了我以下文件:

  • myMongo.key(包含私钥)
  • myMongo.pem(包含证书)
  • myMongo.req(包含证书请求)(我不确定我是否需要这个,但尚未使用它)

根据mongo指令,我将密钥和证书连接成1个文件

cat myMongo.key myMongo.pem > combined.pem
Run Code Online (Sandbox Code Playgroud)

遵循x509配置的mongo说明:http: //docs.mongodb.org/manual/tutorial/configure-x509/

openssl x509 -in combined.pem -inform PEM -subject -nameopt RFC2253
Run Code Online (Sandbox Code Playgroud)

这给了我一个主题:"C = US,ST = myState,CN = …

java ssl groovy mongodb x509

3
推荐指数
1
解决办法
1656
查看次数

标签 统计

groovy ×1

java ×1

mongodb ×1

ssl ×1

x509 ×1