当前位置: 首页 > wzjs >正文

昆明做网站的外贸 网站 seo

昆明做网站的,外贸 网站 seo,青岛网站权重提升,wordpress子网页MongoDB目前最新的版本是8.0,官网也有介绍如何配置SSL/TLS,但是写的太粗糙,好多细节不清楚,导致配置的时候,总是觉得哪里不对。后来,通过挨个翻看历史版本,终于在3.0的版本上看到了MongoDB刚开始…

        MongoDB目前最新的版本是8.0,官网也有介绍如何配置SSL/TLS,但是写的太粗糙,好多细节不清楚,导致配置的时候,总是觉得哪里不对。后来,通过挨个翻看历史版本,终于在3.0的版本上看到了MongoDB刚开始支持SSL时的配置方法,那个就写得更清楚明白一点。基于此,才总结出本文,算是一个笔记吧。


        MongoDB自3.0开始,才支持SSL。但因版本太老,所以官网文档已经不能直接打开了,需要下载到本地打开。以下是内容是根据官网进行整理的步骤,但仅针对自签名方式,如果是授权机构颁发的证书,请参考官网。因为我在这块上面没有实际经验,所以本文就不做介绍了。另外,TLS的配置和SSL差不多,主要是参数名不一样,这里也不介绍,有需要也请查看官网。

一、制作 .pem 文件

        .pem 文件是一个自签名证书 (cert.pem),由公钥和私钥组成,通常需要使用 OpenSSL 工具。以下是生成证书的详细步骤:

1. 生成私钥 (private.key)

首先,需要生成一个私钥文件,通常使用 RSA 算法。命令:

openssl genrsa -out private.key 2048

这将生成一个 2048 位的 RSA 私钥,并保存在 private.key 文件中。

2. 生成证书签名请求 (cert.csr)

使用第一步生成的私钥文件来生成证书签名请求(CSR 文件),命令:

openssl req -new -key private.key -out cert.csr

执行该命令,会要求输入如下信息:

Country Name (国家代码,例如 CN)
State or Province Name (省份)
Locality Name (城市)
Organization Name (公司名称)
Organizational Unit Name (部门)
Common Name (CN,通常为服务器的域名或 IP 地址)
Email Address (可选)

上面的内容,最重要的是 Common Name (CN),通常应为服务器的主机名(例如 mongodb.example.com)或 IP 地址(例如 192.168.0.100),这将在连接 MongoDB 时被验证。

3. 生成自签名证书 (cert.pem)

使用前面生成的私钥和 CSR 文件,生成自签名证书,命令:

openssl x509 -req -in cert.csr -signkey private.key -out cert.pem -days 365

365表示证书的有效期为365天,可以根据需要调整。如果没有错误,那么自签名的证书 cert.pem 文件就制作完成了。

4. 检查生成的证书

可以使用以下命令查看生成的证书内容,以确保它包含刚输入的信息:

openssl x509 -in cert.pem -text -noout

证书里面除了你输入的内容,也包括证书的有效期、颁发者、使用者等信息。

二、配置 MongoDB

1. 配置 MongoDB 使用自签名证书

        将 private.key 和 cert.pem 文件放置在 MongoDB 服务器的某个位置,比如/etc下。然后在 MongoDB 的配置文件(mongod.conf)中进行以下配置:

net:ssl:mode: requireSSLPEMKeyFile: /etc/cert.pemallowInvalidCertificates: false

PEMKeyFile: 指向生成的自签名证书文件。
allowInvalidCertificates: 是否允许无效的证书文件。


2. 重启 MongoDB 服务

重新启动 MongoDB 服务器以应用新的 TLS/SSL 设置:

service mongod restart

3. 用mongo命令测试SSL是否生效

mongo --ssl --sslPEMKeyFile /etc/cert.pem

使用上述命令,可能会报如下错误:

[thread1] SSL peer certificate validation failed: self signed certificate

这个错误表示,MongoDB 客户端在验证证书时,发现证书是自签名的,默认情况下会拒绝连接。在命令中加上 --sslAllowInvalidCertificates 参数,这样客户端就不会验证证书是否由受信任的证书颁发机构(CA)签名,命令如下:

mongo --ssl --sslPEMKeyFile /etc/cert.pem --sslAllowInvalidCertificates

其实,在加了--sslAllowInvalidCertificates参数这种情况下,--sslPEMKeyFile /etc/cert.pem也可以不输入。
再介绍另一个参数:--sslAllowInvalidHostnames ,这个参数则表示不验证hostname,因为自签名证书里面的cn是一个固定值,不是设置的hostname。该参数可不加,不影响连接时的认证。
总结一下就是这条命令可行:

mongo --ssl –sslAllowInvalidCertificates -u username -P password  –authenticationDatabase=admin

        除了上述方法,还可以将自签名证书加入到受信任的证书列表中,以便客户端可以正常验证,我们就放在下一章节介绍。

三、配置Java客户端

        上一节讲到,可以把自签名证书添加到系统的证书存储(如 Linux 的 /etc/ssl/certs/ 或 Windows 的受信任的根证书颁发机构),以解决连接MongoDB服务器无效的问题。

1. 引入证书,命令如下:

keytool -import -alias mongodb_cert -file /etc/cert.csr \-keystore mongodb.jks -storepass mypassword -noprompt

如果遇到创建客户端证书失败,提示keystore密码不对时,通过以下命令可以修改keystore的密码:

keytool -storepasswd -keystore /etc/mongodb.jks -storepass 旧密码 -new 新密码

也可以先查询是否已存在该证书,存在则删除,命令如下:

  if keytool -list -keystore "$TRUSTSTORE_FILE" -storepass "$KEYSTORE_PASSWORD" | grep -q "$CERT_NAME"; thenkeytool -delete -alias "$CERT_NAME" -keystore "$TRUSTSTORE_FILE" -storepass "$KEYSTORE_PASSWORD"fi

 

2. 代码中引入信任库 

import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;

public class MongoDBConnect {
    public static void main(String[] args) {
        // 设置自定义的信任库(TrustStore)
        System.setProperty("javax.net.ssl.trustStore", "/etc/cert.jks");
        System.setProperty("javax.net.ssl.trustStorePassword", "yourTrustStorePassword");

        String uri = "mongodb://<username>:<password>@<hostname>:<port>/?tls=true";

        MongoClientURI clientURI = new MongoClientURI(uri);
        MongoClient mongoClient = new MongoClient(clientURI);

        // 使用客户端连接 MongoDB
        System.out.println("Connected to the database with custom TrustStore!");
        mongoClient.close();
    }
}

四、配置集群

配置集群的时候,和前面介绍的单机是一样的,执行相同的安装命令,会自动生成证书,但是,需要保证集群中的每个节点的openssl版本一致,使用命令:

openssl version

查看版本号,如果不一致,则需要采取复制的方式,否则将导致程序无法启动。
选择某个节点来创建证书,其他节点复制该节点生成的证书。 证书涉及到2个路径:/etc/cert.pem和/mongodb.jks。

http://www.dtcms.com/wzjs/597705.html

相关文章:

  • 做影视网站怎么赚钱酒泉地网站推广
  • 建设网站改版做网站直接从网上的icon吗
  • 南通网站排名优化谷歌网站模板
  • 自己做的网站怎么嵌入高德地图网页设计基础教程视频教程
  • 云南网站制作一条龙建设门户网站需要注意什么
  • 专业福州网站建设上海优化排名推广
  • 公司做网站的费用会计分录哈尔滨中小企业网站制作
  • Wordpress网站删除多余主题深圳做消防工程的公司
  • 个人网站如何做淘宝客wordpress如何编辑
  • 安徽省住房城乡建设部网站网络培训挂机软件
  • 抖音网站网站名称查询
  • 网站建设基本教程专业网站建设总结
  • 京东联盟如何做查优惠卷的网站重庆h5建站
  • 免费户型设计网站河南做网站公司哪家好
  • 海口顶尖网站建设wordpress百度数据
  • 网站性能容量的收集与分析怎么做管家婆客户管理系统
  • 网站建设销售做些什么工作seo优化好做吗
  • 怎么用FTP做网站电子商务网站建设考试试卷
  • 可以做动画的网站近期热点新闻事件
  • 航天桥网站建设专注成都网站建设及推广
  • 达州市做网站商业网站设计方案模板
  • 注册域名后网站建设烟台专业的做网站公司
  • 我想学网站建设需要选择什么书wordpress编辑器未知错误5.2
  • 徐州IT兼职网站开发朔州seo
  • 义乌开锁做网站哪个好湘潭自助建站系统
  • 网站后台 登录界面模板 远吗英国搜索引擎
  • 怎么建立网站的流程wordpress加目录
  • 图片点击就能跳转网站怎么做的南阳网站建站公司
  • 网站建设多少钱一个月网站方案设计
  • 杭州 网站定制学做网站书籍