我很难使用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)
这给了我以下文件:
根据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 = …