如何通过将所有选项放入 node.js 驱动程序 mongodb 的连接字符串中来连接 X509?
How can I connect with X509 by putting all options in the connection string in node.js driver for mongodb?
我正在使用 mongodb docs 中可用的密钥
对于使用 X509 身份验证和 Node.js 驱动程序的自签名证书。
尝试连接到数据库时出现以下错误:
MongoNetworkError: failed to connect to server [pedro.com:57040] on first connect [MongoNetworkError: unable to verify the first certificate]
尽管出现该错误,但我确信连接正常,因为我使用的是 Studio 3T,并且一切正常,并且 运行 使用相同的证书。
所以我的问题是...如何通过在连接字符串中写入所有选项以编程方式使用 x509 证书连接到数据库?也许我给的钥匙是错的?还是有些不见了?
db: `mongodb://CN=pedro.com,OU=IT,O=Polygon,L=Setubal,ST=Setubal,C=PT@pedro.com:57040,pedro.com:57041
,pedro.com:57042/testBO?
ssl=true&authMechanism=MONGODB-X509
&sslPEMKeyFile=${fs.readFileSync(
`${Helpers.appRoot(Env.get('DB_SSL_CERT'))}`
)}
&sslCAFile=${fs.readFileSync(
`${Helpers.appRoot(Env.get('DB_SSL_CA'))}`
)}&replicaSet=testReplica`
您需要确保服务器和客户端都可以验证彼此的证书。两次验证是独立的,使用不同的选项。
对于服务器端,请参阅 https://github.com/mongodb/mongo-ruby-driver/blob/master/.evergreen/run-tests.sh#L74, for client side see https://github.com/mongodb/mongo-ruby-driver/blob/master/.evergreen/run-tests.sh#L91。 URI 选项已跨驱动程序标准化。
另见 https://github.com/mongodb/mongo-ruby-driver/blob/master/spec/README.md#x509-authentication。
sslPEMKeyFile
是遗留节点驱动程序选项(假设它有效),tls* 选项采用文件路径而不是文件内容。
我正在使用 mongodb docs 中可用的密钥 对于使用 X509 身份验证和 Node.js 驱动程序的自签名证书。
尝试连接到数据库时出现以下错误:
MongoNetworkError: failed to connect to server [pedro.com:57040] on first connect [MongoNetworkError: unable to verify the first certificate]
尽管出现该错误,但我确信连接正常,因为我使用的是 Studio 3T,并且一切正常,并且 运行 使用相同的证书。
所以我的问题是...如何通过在连接字符串中写入所有选项以编程方式使用 x509 证书连接到数据库?也许我给的钥匙是错的?还是有些不见了?
db: `mongodb://CN=pedro.com,OU=IT,O=Polygon,L=Setubal,ST=Setubal,C=PT@pedro.com:57040,pedro.com:57041
,pedro.com:57042/testBO?
ssl=true&authMechanism=MONGODB-X509
&sslPEMKeyFile=${fs.readFileSync(
`${Helpers.appRoot(Env.get('DB_SSL_CERT'))}`
)}
&sslCAFile=${fs.readFileSync(
`${Helpers.appRoot(Env.get('DB_SSL_CA'))}`
)}&replicaSet=testReplica`
您需要确保服务器和客户端都可以验证彼此的证书。两次验证是独立的,使用不同的选项。
对于服务器端,请参阅 https://github.com/mongodb/mongo-ruby-driver/blob/master/.evergreen/run-tests.sh#L74, for client side see https://github.com/mongodb/mongo-ruby-driver/blob/master/.evergreen/run-tests.sh#L91。 URI 选项已跨驱动程序标准化。
另见 https://github.com/mongodb/mongo-ruby-driver/blob/master/spec/README.md#x509-authentication。
sslPEMKeyFile
是遗留节点驱动程序选项(假设它有效),tls* 选项采用文件路径而不是文件内容。