繁体   English   中英

在 Julia 中使用 SSL 证书连接到 Mongodb

[英]Connect to Mongodb using SSL certificate in Julia

我正在尝试使用 julia 中的 ssl 证书连接到 mongodb。 我需要的是下面用 nodejs 编写的等效代码:

var MongoClient = require('mongodb').MongoClient,
  f = require('util').format,
  fs = require('fs');

// Read the certificate authority
var ca = [fs.readFileSync(__dirname + "/ssl/ca.pem")];
var cert = fs.readFileSync(__dirname + "/ssl/client.pem");
var key = fs.readFileSync(__dirname + "/ssl/client.pem");

// Connect validating the returned certificates from the server
MongoClient.connect("mongodb://localhost:27017/test?ssl=true", {
  server: {
      sslValidate:true
    , sslCA:ca
    , sslKey:key
    , sslCert:cert
    , sslPass:'10gen'
  }
}, function(err, db) {
  db.close();
});

我发现的是 mongoc.jl 教程,其中描述了如何连接,但没有关于 ssl 证书的内容。

https://felipenoris.github.io/Mongoc.jl/stable/tutorial/#Connecting-to-MongoDB-1

谁能帮助我如何使用 ssl 证书进行连接?

谢谢!

Mongoc.jl中尚未实现对SSL证书的支持。 我认为你有两个合理的选择:

  1. 通过PyCall使用PyCall
using PyCall, Conda
Conda.runconda(`install -c anaconda pymongo -y`)
pymongo = pyimport("pymongo")
  1. 以反向代理模式在本地计算机上安装Apache,并将其配置为透明地处理远程主机的证书授权。 因此,您可以使用普通HTTP连接到本地Apache,确保与生产主机的连接已加密。

这在 Mongoc.jl 包中进行了讨论。 我测试了它,它对我有用。

https://github.com/felipenoris/Mongoc.jl/issues/69

$ brew install openssl
$ ls /usr/local/etc/openssl/cert.pem
$ julia
] add Mongoc
julia> using Mongoc
julia> suffix = "&tlsCAFile=/usr/local/etc/openssl/cert.pem" # or use "?tlsCAFile=" if you don't have any other params already
julia> mongo_uri = "mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin"
julia> client = Mongoc.Client(mongo_uri*suffix)
julia> collect(Mongoc.find_databases(client))

ca-certificates Mac OS X

https://pymongo.readthedocs.io/en/3.5.1/examples/tls.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM