Mongodb Mongocxx驱动程序无法使用X.509证书身份验证进行连接 我想用C++驱动程序实现Mongo的X.509证书认证。驱动程序是3.4.0(启用OpenSSL的自定义构建),C驱动程序是1.13.0,运行在Debian 9上,服务器是Mongo 3.2
要连接的代码:Mongodb Mongocxx驱动程序无法使用X.509证书身份验证进行连接 我想用C++驱动程序实现Mongo的X.509证书认证。驱动程序是3.4.0(启用OpenSSL的自定义构建),C驱动程序是1.13.0,运行在Debian 9上,服务器是Mongo 3.2,mongodb,ssl,mongo-cxx-driver,Mongodb,Ssl,Mongo Cxx Driver,要连接的代码: mongocxx::options::client opts; mongocxx::options::ssl ssl_opts; ssl_opts.allow_invalid_certificates(false); ssl_opts.ca_file( "rootCA.pem ); ssl_opts.pem_file( "mongodb.pem" ); opts.ssl_opts(ssl_opts); const mongo
mongocxx::options::client opts;
mongocxx::options::ssl ssl_opts;
ssl_opts.allow_invalid_certificates(false);
ssl_opts.ca_file( "rootCA.pem );
ssl_opts.pem_file( "mongodb.pem" );
opts.ssl_opts(ssl_opts);
const mongocxx::uri url{"mongodb://x.xxx.xxx.xxx:27017/?ssl=true&maxPoolSize=10"};
这将传递给mongocxx::pool实例
当我尝试执行命令时,我收到:
连接失败:找不到合适的服务器:serverSelectionTimeoutMS
expired:[TLS握手失败:错误:1416F086:SSL例程:TLS\u进程\u服务器\u证书:证书验证在x.xxx.xxx上调用ismaster失败
当我在python3脚本中使用相同的证书时,一切正常(pymongo是3.4.0,安装于Debian repo):
另外,如果我使用相同的URI和pass证书选项从shell运行mongo命令,连接就会成功建立
我遗漏了什么吗?您解决了问题吗?当我将ssl/tls选项传递给mongocxx::pool时,我也遇到了同样的问题。
import pymongo
client = pymongo.MongoClient('mongodb://3.120.209.225:27017/?ssl=true&maxPoolSize=10',
ssl_ca_certs='rootCA.pem',
ssl_certfile='mongodb.pem')
db = client.ucas
print(db.command("isMaster"))