mongodb ssl java_MongoDB的SSL实现分析

本文详细介绍了MongoDB如何封装和使用OPENSSL实现SSL通信。包括SSL配置参数、证书过期检测、SSL连接管理以及SSL与Socket通信的整合,展示了MongoDB在确保安全通信方面的实现细节。
摘要由CSDN通过智能技术生成

1. OPENSSL接口封装

MongoDB封装了OPENSSL的SSL通信接口,代码在mongo/util/net目录。

主要包括以下几个方面:

1) SSL配置参数,在ssl_options(.cpp/.h)

定义了数据结构SSLGlobalParams,SSLGlobalParams中保存了与SSL相关的所有的配置参数。

在ssl_options中定义了一个SSLGlobalParams类型的全局变量sslGlobalParams,在客户端或者服务器进程启动时会通过相关接口从全局的配置参数中将SSL相关的配置参数保存到sslGlobalParams之中。

主要接口:

addSSLServerOptions()

addSSLClientOptions()

2) SSL证书过期检测,在ssl_expiration(.cpp/.h)

定义了类CertificateExpirationMonitor,该类继承了PeriodicTask,会定期将证书的过期时间与当前时间做比较。如果证书过期,会报警告。

3)SSL连接管理,在ssl_manager(.cpp/.h)

定义了类SSLConnection,该类封装了SSL通信时使用的SSL句柄,BIO以及Socket。

定义了接口类SSLManagerInterface,该类定义了建立SSL连接、验证SSL证书、SSL读写数据等接口。

定义了类SSLThreadInfo,该类用于处理SSL多线程环境下使用的问题。

定义了结构Params,该类保存了所有的SSL配置参数。

定义了类SSLManager,该类继承了接口类SSLManagerIn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值