当前位置:首页 > 数据库 > MongoDB 配置SSL

MongoDB 配置SSL

2022年09月16日 14:45:36数据库4

https://docs.mongodb.com/manual/core/security-transport-encryption/

关于MongoDB 的SSL 配置, 官方文档挺齐全的

win10 64位 安装 OpenSSL-Win64 的安装版, 添加环境变量path

由于文档提供的基本是Linux 的, 网上搜索到的也是Linux 这样的, 自己改成了 windows 的

G:
cd G:\ca

openssl req -newkey rsa:2048 -new -x509 -days 365 -nodes -out mongodb-cert.crt -keyout mongodb-cert.key

copy /b /y mongodb-cert.key+mongodb-cert.crt  mongodb.pem

这个是直接使用了CA根证书, 和由key+证书组成的CA服务器证书(mongodb 要求key+cert 合成的pem)

配置文件

net:
  port: 27000
  bindIp: 127.0.0.1
  ssl:
    mode: requireSSL
    PEMKeyFile: G:\ca\mongodb.pem
    CAFile: G:\ca\mongodb-cert.crt
    allowInvalidHostnames: true

如果有集群, 加上

security:
  authorization: enabled 
  clusterAuthMode: x509

启动MongoDB 后, 用mongo 客户端连接, 因为是自己建的证书, 所以--sslAllowInvalidCertificates 是必要的

mongo localhost:27000 --ssl --sslPEMKeyFile "G:\ca\mongodb.pem" --sslAllowInvalidCertificates --sslAllowInvalidHostnames

CA证书文本如下, 

-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCYEWg25ldKZ5Tp
...........省略
eBIOjsRGtKjZPq8DaG5KHw==
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIDVDCCAjygAwIBAgIJALM8IRVGE0GmMA0GCSqGSIb3DQEBCwUAMD8xCzAJBgNV
...........省略
OPmFbgHKYak2prMTuuIDy+xga99usbRnJ7LHOJ6pEQeSHnUYgneEvQ==
-----END CERTIFICATE-----

如果CA证书是这样多了一些其余的文本, 将会报"InvalidSSLConfiguration: CryptDecodeObjectEx failed to get size of object: ASN1", 解决办法就是把所有密钥的密码去掉, 具体方法我另外的博客有写.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,A81673BE6BAEA8EF

L/MXfOZgse4+D4BmUaI2bGbGf998qF/ijbSm1NklqB7AG1xltyb8SAN1TSX0yZS+
56H9DKIKMuowbXyWAjlaROPrRqQlLIrz+R5PTGzUJuXuD0KmHYe8bZQtnTDEyj3s

使用MongoDB 自带的工具MongoDB Compass 的话, 你只能登陆admin 数据库中的用户, 无法切换到其他数据库, 所以如果使用SSL 的话, 那么Compass 就鸡肋了

MongoDB 配置SSL _ JavaClub全栈架构师技术笔记

 

作者:lin49940
来源链接:https://blog.csdn.net/lin49940/article/details/86601857

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/41943.html

标签: MongoDB
分享给朋友:

“MongoDB 配置SSL” 的相关文章

Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)

Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第104篇原创 文章工程: * JDK 1.8 * Maven 3.5.2 * Spring Boot 2.1.3.R...

WebFlux 集成 Thymeleaf 、 Mongodb 实践,Spring Boot 2

WebFlux 集成 Thymeleaf 、 Mongodb 实践,Spring Boot 2

这是泥瓦匠的第105篇原创 文章工程: JDK 1.8 Maven 3.5.2 Spring Boot 2.1.3.RELEASE 工程名:springboot-webflux-5-thymeleaf-mong...

springboot给mongodb添加索引

最近项目中,需要用到mongodb,然后有一个定时任务每天都会新建表,但是数据量又很大,查询的时候很慢,因此需要在新建表的时候给表添加索引 //简易例子 String collectionName = "t_user"; Index index = new Index();...

springboot整合mongodb changestream

前言 changestream是monggodb的3.6版本之后出现的一种基于collection(数据库集合)的变更事件流,应用程序通过db.collection.watch()这样的命令可以获得被监听对象的实时变更 想必对mysql主从复...

Centos 使用yum安装MongoDB 4.0

Centos 使用yum安装MongoDB 4.0

1.配置MongoDB的yum源 创建yum源文件: #cd /etc/yum.repos.d  #vim mongodb-org-4.0.repo  添加以下内容:(我们这里使用阿里云的源) [mngodb-org] nam...

mongodb与mysql命令对比

mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关...

Centos7下yum安装mongodb

  简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 查看官方网站 MongoDB特点...

MongoDB与Mysql常用命令解释

原文 本文旨在介绍MongoDB,Mysql的常用命令:将MongoDB 和传统的关系型数据库的常用命令对照起来学习,更加便于记忆和理解。 MongoDB是由数据库(database/repository)、集合(collection)、文档对象(documen...

JAVA单例MongoDB工具类

我经常对MongoDB进行一些基础操作,将这些常用操作合并到一个工具类中,方便自己开发使用。 没用Spring Data、Morphia等框架是为了减少学习、维护成本,另外自己直接JDBC方式的话可以更灵活,为自己以后的积累留一个脚印。   JAVA驱动版本...

CentOS 8.2上安装部署MongoDB 4.4

CentOS 8.2上安装部署MongoDB 4.4

目录 什么是MongoDB?: 环境规格: CentOS 8中安装MongoDB Yum存储库: CentOS 8中为MongoDB设置资源限制: 在CentOS 8上安装MongoDB数据库: C...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。