- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试设置 mongodump 以及 TLS/SSL 加密。为此,我一直在关注各种文章:Self-signed SSL connection using PyMongo , https://mydbops.wordpress.com/2020/05/02/securing-mongodb-cluster-with-tls-ssl/还有更多。
所以,我已经生成了 CA 证书。
#Create CA Private Certificate
openssl genrsa -passout pass:<password> -out ca.key -aes256 8192
#Sign CA Public Certificate
openssl req -x509 -new -extensions v3_ca -passin pass:<password> -key ca.key -days 365 -out ca-pub.crt -subj "/C=XX/L=Default City/O=Default Company Ltd"
然后,为 MongoDB 服务器创建一个 key 并使用 CA 对其进行自签名。
openssl req -nodes -newkey rsa:4096 -sha256 -keyout mongod.key -out mongod.csr -subj "/C=XX/L=Default City/O=Default Company Ltd/CN=<host-name-IP>";
openssl x509 -req -in mongod.csr -CA ca-pub.crt -passin pass:<password> -CAkey ca.key -CAcreateserial -out mongod.crt;
cat mongod.key mongod.crt > mongod.pem;
接下来,我为客户端创建了一个 conf 文件,内容如下:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
default_keyfile = mongo-client.key
prompt = no
[req_distinguished_name]
C = filled-appropriately
ST = filled-appropriately
L = filled-appropriately
O = client
OU = client-team
CN = .
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:<mongodb-server-ip>
接下来,使用这个 .conf 文件,生成了一个 mongo 客户端 csr 文件
openssl req -new -nodes -out mongo-client.csr -config mongo-client.conf
然后,使用 CA 证书对这些进行自签名。
openssl x509 -req -in mongo-client.csr -CA ca-pub.crt -CAkey ca.key -out mongo-client.crt
cat mongo-client.key mongo-client.crt > mongo-client.pem
我已将 CA 和 MongoDB 服务器特定文件放置在适当的位置(在/etc/ssl 中)并更新了 mongod.conf 文件中的路径
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb.pem
CAFile: /etc/ssl/ca-pub.crt
更新后,执行 daemon-reload 并重新启动 mongod.service,并将 ca-pub.crt 和 mongo-client.pem 移动到适当的客户端服务器。
mongo --tls --tlsCAFile ca-pub.crt --tlsCertificateKeyFile mongo-client.pem --host=<server-IP> -u <username> -p <password>
但是,当我尝试运行 mongodump 命令时:
mongodump --host=<server-IP> -u <username> -p <password> --ssl --sslCAFile=ca-pub.crt --sslPEMKeyFile=mongo-client.pem
它给出了这个错误:
Failed: can't create session: could not connect to server: server selection error: server selection timeout, current topology: { Type: Single, Servers: [{ Addr: <server-IP>, Type: Unknown, State: Connected, Average RTT: 0, Last error: connection() : x509: cannot validate certificate for <server-IP> because it doesn't contain any IP SANs }, ] }
注意:以上所有代码中,server-IP 的值都已适当添加。
最佳答案
SubjectAltName 与我过去使用的不同。
创建一个通用的签名请求
echo '[req]
default_bits = 4096
default_md = sha256
distinguished_name = req_distinguished_name
[ req_distinguished_name ]' | sudo tee common.csr.conf
openssl req -nodes -sha256 -newkey rsa:4096 -keyout node1.key.pem -out node1.csr -subj "/C=US/ST=Oregon/L=Springfield/O=Some Organization/OU=Replicaset/CN=node1" -config common.csr.conf
创建扩展文件
echo '
basicConstraints = CA:FALSE
nsCertType = client, email
nsComment = "OpenSSL Generated Client Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth, emailProtection
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = node1.barry.test
IP.1 = 127.0.0.1' | sudo tee node1.ext
签署证书
openssl x509 -req -sha256 -in node1.csr -CA ca.crt.pem -CAkey ca.key.pem -CAcreateserial -days 365 -out node1.crt.pem -extfile node1.ext
将证书和 key 合并到 PEM 文件中
cat node1.key.pem node1.crt.pem > node1.pem
关于mongodb - mongodump 错误 : x509: cannot validate certificate for <server-IP> because it doesn't contain any IP SANs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71588335/
我正在尝试获取本地数据库的转储,看来我应该使用: mongodump --host localhost:3002 但是,终端然后告诉我: -bash: mongodump: command not f
我们有一个开发团队会定期从 DEV 中取出 mongodump,然后将其恢复到本地主机以供工作。我们最近在 mongodb 中实现了身份验证,我希望能够让我们的开发团队仅在一个数据库上执行 mongo
如果我跑 mongodump在来自远程主机的数据库上,并且在此过程中,网络连接中断了一段时间...如果我开始 mongodump它会从它完成的地方继续还是从头开始? 关于mongorestore的同样
有没有办法将 mongo 数据库转储到特定的文件夹名称?假设我有一个名为 myDb 的数据库 当我使用时: mongodump --db myDb 它生成一个转储文件夹,里面有一个 myDb 文件夹
我是 mongodb 的新手。我正在尝试使用 备份我的数据库mongodump .但是每当我使用此命令时,我都会收到以下错误 Referenceerror: mongodump is not defi
我正在尝试在线托管我的数据库,根据我在网上找到的内容,我需要先使用 mongodump 导出我的数据库。 如果没有错的话使用mongodump的方法是: mongodump -d -o 当我使用上
我正在尝试从我的辅助系统中转储,以免影响实时流量。 我可以从中成功转储。但是如果我添加一个查询,我会得到 0 个文档。 我需要添加什么才能成功查询我的奴隶? 0 Documents: mongodum
我在我的 mongo 实例上创建了两个具有以下角色的用户 use mydb db.createUser( { user: "dbUser", pwd: "dbPassword",
我正在尝试从通过 gitlab-ci-multirunner 运行的 docker 镜像中访问 mongorestore/mongodump 命令。 我的 .gitlab-ci.yml 看起来像这样:
我有这样的东西: dbs=$(mongo --quiet --eval "db.getMongo().getDBNames()" --host exemple.com | \
我已经在 3 分片集群上针对大小为 600GB 的数据库执行了“mongodump”,并且 block 均匀分布在所有 3 个分片上。 我的 mongodump 命令是这样的: mongodump -
我正在考虑使用 mongodump 进行日常备份。 如果我总是在同一个目录上执行转储:我是否必须确保在运行 mongodump 之前清除前一天的内容?我在文档中找不到任何关于此的信息。 最佳答案 不,
我正在作为分片复制集一部分的盒子上运行以下命令。我只是想从这个特定的分片导出,我也会在另一个分片上运行相同的命令。 当我这样做时,Mongo 最多应该转储 172 万条记录,但相反,它似乎正在尝试导出
以下是文档的结构: { "_id" : ObjectId("4fccd39c9d8597a034d183b1"), "image" : "23ef514f8201320c2d7253e4bf2
我的 mac macOs High Sierra v10.13.1 上安装了 MongoDB v3.2.6,我正在尝试在升级之前进行备份。 我有一个使用默认数据库位置和默认端口在一个窗口中运行的 $
我正在为 mongo 设置备份策略,只是想知道 mongodump 在执行数据库转储之前是否会锁定数据库? 最佳答案 我在 mongo's google group 上找到了这个: Mongodump
我正在尝试从 remote ssh 运行此命令 mongodump --host mongodb1.example.net --port 27017 --username user --passwor
我们最近将一些数据移植到了 MongoDB,现在正在考虑运行每日备份,最好是从 cron 作业,并将其中一个备份恢复到辅助 mongo 数据库。 我们的系统设置如下: 服务器 1:开发 mongo 数
我试图在产品服务器上备份我的 mongo 数据库。然后恢复然后回到登台服务器。这里出现了一些问题,db 中有很多集合,我想取消一些我不想在暂存服务器上恢复的集合。 我可以通过转储暂存数据库,转储生产数
我需要能够恢复单个数据库,甚至是备份中的单个集合。由于 mongodump --oplog 仅适用于完整实例(副本集),我进行了以下过程以仅过滤我想从 oplog.bson 由 --oplog 选项生
我是一名优秀的程序员,十分优秀!