证书准备
参考http://blog.csdn.net/zahuopuboss/article/details/53606883
准备自建CA并签发服务端证书和客户端证书
把服务端证书合并到一个文件
cat server.key server.crt > mongodb.pem
客户端相同
服务端设置
在配置文件/etc/mongodb.conf中添加
sslMode = requireSSL
sslPEMKeyFile = /etc/mongossl/mongodb.pem
sslCAFile = /etc/mongossl/ca.pem
每个连接都需要加密
客户端需要提供证书
重启mongod
sudo service mongodb restart
客户端连接
命令行mongo连接
mongo --ssl --sslCAFile ~/mongocert/ca.crt --host 192.168.1.1 --sslPEMKeyFile client.pem --sslAllowInvalidHostnames
默认是检查服务端证书主机名称的,有可能会报错
E NETWORK [main] The server certificate does not match the host name. Hostname: 192.168.1.1 does not match SAN(s): server
这里使用选项--sslAllowInvalidHostnames不检查服务端证书中的C