mongodb 客户端_MongoDB安全|用于测试的OpenSSL客户端证书

news/2024/7/3 2:58:53

5179a2e6940c9028351dd0f379a267b9.png

09ece3487781efd3a4e8f1f5c29050c4.png

MongoDB Manual (Version 4.2)> Security > Appendix > Appendix B - OpenSSL Server Certificates for Testing

查看更多中文手册翻译和加入贡献请访问https://docs.mongoing.com/

免责声明

提供此页面仅用于测试目的,证书仅用于测试目的

以下教程提供了一些有关创建测试 x.509证书的准则 :

  • 请勿将这些证书用于生产。相反,请遵循您的安全策略。

  • 有关 OpenSSL 的信息,请参考官方的 OpenSSL 文档。尽管本教程使用的是 OpenSSL,但不应将本材料当作 OpenSSL 的权威参考。

前提条件

此页面上描述的过程使用了测试中间权限证书及在附录A-用于测试的OpenSSL CA证书中创建的密钥mongodb-test-ia.crtmongodb-test-ia.key

过程

以下过程概述了为MongoDB客户端创建测试证书的步骤。有关为MongoDB服务器创建测试证书的步骤,请参阅附录B - 用于测试的OpenSSL服务器证书。

A. 创建OpenSSL配置文件

  1. 用下面的内容为你的客户端创建一个测试配置文件openssl-test-client.cnf

    # NOT FOR PRODUCTION USE. OpenSSL configuration file for testing.[ req ]default_bits = 4096default_keyfile = myTestClientCertificateKey.pem    ## The default private key file name.default_md = sha256distinguished_name = req_dnreq_extensions = v3_req[ v3_req ]subjectKeyIdentifier  = hashbasicConstraints = CA:FALSEkeyUsage = critical, digitalSignature, keyEnciphermentnsComment = "OpenSSL Generated Certificate for TESTING only.  NOT FOR PRODUCTION USE."extendedKeyUsage  = serverAuth, clientAuth[ req_dn ]countryName = Country Name (2 letter code)countryName_default =countryName_min = 2countryName_max = 2stateOrProvinceName = State or Province Name (full name)stateOrProvinceName_default = TestClientCertificateStatestateOrProvinceName_max = 64localityName = Locality Name (eg, city)localityName_default = TestClientCertificateLocalitylocalityName_max = 64organizationName = Organization Name (eg, company)organizationName_default = TestClientCertificateOrgorganizationName_max = 64organizationalUnitName = Organizational Unit Name (eg, section)organizationalUnitName_default = TestClientCertificateOrgUnitorganizationalUnitName_max = 64commonName = Common Name (eg, YOUR name)commonName_max = 64
  2. 可选项。您可以更新默认专有名称(DN)值。确保客户端证书与服务器证书在以下至少一项属性上有所不同:组织(O),组织单位(OU)或域组件(DC)。

B. 为客户端创建测试的PEM文件

  1. 创建测试密钥文件mongodb-test-client.key

    openssl genrsa -out mongodb-test-client.key 4096
  2. 创建测试的认证签名文件mongodb-test-client.csr。当要求提供专有名称值时,为你的测试证书输入合适的值。

重要

客户端证书主题必须与服务器证书主题在以下属性中至少有一项要不同:组织(O),组织单位(OU)或域组件(DC)。

openssl req -new -key mongodb-test-client.key -out mongodb-test-client.csr -config openssl-test-client.cnf
  1. 创建测试客户端证书mongodb-test-client.crt

openssl x509 -sha256 -req -days 365 -in mongodb-test-client.csr -CA mongodb-test-ia.crt -CAkey mongodb-test-ia.key -CAcreateserial -out mongodb-test-client.crt -extfile openssl-test-client.cnf -extensions v3_req
  1. 为客户端创建测试的PEM文件。

cat mongodb-test-client.crt mongodb-test-client.key > test-client.pem

你可以使用测试的PEM文件为TLS/SSL测试配置mongo shell。例如,连接一个mongod或者mongos

对于MongoDB 4.2或更高版本,在客户端中包含以下选项:

mongo --tls --host  --tlsCertificateKeyFile test-client.pem  --tlsCAFile test-ca.pem

对于MongoDB 4.0或更早版本,在客户端中包含以下选项:

mongo --ssl --host  --sslPEMKeyFile test-client.pem  --sslCAFile test-ca.pem

在macOS系统中

如果您使用Keychain Access管理证书,创建一个pkcs-12而不是PEM文件添加到Keychain Access中:

  openssl pkcs12 -export -out test-client.pfx -inkey mongodb-test-client.key -in mongodb-test-client.crt -certfile mongodb-test-ia.crt

将其添加到Keychain Access后,您无需指定证书密钥文件,就可以使用--tlsCertificateSelector来指定要使用的证书。如果CA文件也在Keychain Access中,也可以省略--tlsCAFile

对于MongoDB 4.2或更高版本

  mongo --tls --tlsCertificateSelector subject=""

虽然仍然可以使用,--ssl--sslCertificateSelector在MongoDB 4.2中已废弃。

对于MongoDB 4.0及更早版本

  mongo --ssl --sslCertificateSelector subject=""

要向Keychain Access添加证书,请参阅Keychain Access的官方文档。

  mongod --tlsMode requireTLS --tlsCertificateSelector subject=""

另请查阅

  • 附录A - 用于测试的OpenSSL CA证书

  • 附录C - 用于测试的OpenSSL客户端证书

  • 成员的x.509证书

原文链接:https://docs.mongodb.com/v4.2/appendix/security/appendixC-openssl-client/

译者:谢伟成  MongoDB中文社区翻译小组成员

往期发布:

*查看更多翻译请移步至MongoDB中文社区网站(mongoing.com)查阅中文用户手册。

The mongo Shell

mongo 命令行

配置 mongo shell

查看 mongo shell帮助文档

MongoDB CRUD操作

— MongoDB中的CRUD操作

批量写操作

读关注

写关注

数据模型

— MongoDB数据建模介绍

事务

事务

事务操作

索引

2dsphere索引

哈希索引

索引属性

在集合上创建索引

量索引使用情况

安全

安全检查列表

启用访问控制

身份验证

审计

—— 配置审计

—— 配置审计过滤器

—— 系统事件审计消息

网络和配置强化

安全参考

—— system.roles 集合

—— system.users 集合

—— 资源文档

—— 权限操作

—— 附录A:用于测试的 OpenSSl CA 证书

—— 附录B:用于测试的OpenSSL服务器证书

复制

副本集成员

副本集Oplog

副本集数据同步

副本集部署架构

分片

分片键

管理

产品说明

操作检查表

开发检查表

性能

备份方法

存储

—— WiredTiger存储引擎

—— 内存存储引擎

常见问答:MongoDB 存储

1004bd9ed946dac6eb136a019af81dbb.png

喜欢我们,

分享、点赞、在看三连哦~


http://www.niftyadmin.cn/n/2419674.html

相关文章

用正则表达式把用URLEncode的字符串转换成正常的字符串函数

<script languageJavaScript RUNATSERVER> // 利用正则表达式把用URLEncode的字符串转换成正常的字符串函数 function URLDecode(EncodeString) { var lsRegExp /\/g; return unescape(String(EncodeString).replace(lsRegExp, " ")); } </script>…

ppp协议数据抓包分析_CoAP协议详细讲解+服务器搭建测试+数据抓包分析

点上方蓝字关注我们每天都有好玩的东西等着你在IoT项目架构中&#xff0c;除了基于TCP的MQTT协议&#xff0c;使用最多的就是基于UDP的CoAP协议&#xff0c;两者可以说是平分秋色&#xff0c;各有优势。CoAP协议运行在UDP之上&#xff0c;消息格式非常紧凑&#xff0c;一个最小…

JS控制Video播放器(video详细介绍)(快进、后退、播放、暂停、音量大小)

思路&#xff1a; 一.首先监听触发事件。 比如&#xff1a;向上键对应的keyCode为38&#xff0c;向下键对应的keyCode为40&#xff0c;向左键对应的keyCode为37&#xff0c;向右键对应的keyCode为39&#xff0c;空格键对应的keyCode为32&#xff0c; 其他的keyCode可以通过 co…

express 使用https

var express require(express); var https require(https); var http require(http); var fs require(fs);//同步读取密钥和签名证书 var options {key:fs.readFileSync(./keys/server.key),cert:fs.readFileSync(./keys/server.crt) }; var app express(); var httpsSer…

sql 根据入离职日期查询月初人员信息_关于sql的一些总结

最近花了大量的时间研究算法、python编程的应用和kaggle/阿里天池的比赛&#xff0c;对于最基础的sql有些忽略&#xff0c;作为数据分析师的入门工具&#xff0c;必须要时常回顾一下。这篇文章将对sql进行一个总结概括&#xff0c;并且对自己在leetcode、牛客网以及sql50题练习…

有关TinyXML使用的简单总结

这次使用了TinyXML后&#xff0c;觉得这个东西真是不错&#xff0c;于是将使用方法坐下总结来和大家分享。该解析库在开源网站&#xff08;http://sourceforge.net&#xff09;上有下载&#xff0c;在本Blog也提供下载&#xff08;下载TinyXML&#xff09;TinyXML是一个开源的解…

oracle replace函数替换多个_Excel四大文本清洗类函数,数据清洗轻松搞定

Excel作为数据分析最好用的工具之一&#xff0c;今天就来说说Excel中那些数据清洗类函数。数据截取类数据截取类函数主要功能为从文本中提取需要的字符串&#xff0c;主要包括left、right、mid函数。1、left函数功能&#xff1a;从一个文本字符串的第一个字符开始&#xff0c;返…

eigen 笔记1

c 的 eigen 类似于 python 的 numpy, 还有一个类似的库是 Armadillo, 当然还有 opencv. Armadillo 与 matlab 在函数名称上更接近, 但是 TensorFlow 和 Ceres 使用了 eigen. 这里不讲究谁优谁劣, 入门阶段迅速掌握一个, 用起来就够了. 1. The Matrix Class 1) The first three …