zoukankan      html  css  js  c++  java
  • mongodb 设置 ssl

    # mongodb ssl详细配置

    准备:确保openssl可用;

    1. #### 生成根证书

    ```
    openssl req -out ca.pem -new -x509 -days 3650 -subj "/C=CN/ST=BeiJing/O=bigdata/CN=root/emailAddress=15617165229@163.com"


    #生成需要设置密码
    参数说明
    -new:表示生成一个新证书签署请求
    -x509:专用于CA生成自签证书,如果不是自签证书则不需要此项
    -out:证书的保存路径
    -days:证书的有效期限,单位是day(天),默认是365天
    ```

    2. #### 生成服务端pem文件

    1. 使用rsa加密算法生成一个服务端私钥文件

    ```
    openssl genrsa -out server.key 2048
    参数说明
    genrsa —— 使用RSA算法产生私钥
    out——输出文件的路径
    2048——指定私钥长度
    ```

    2. 根据密钥文件生成一个证书申请文件(req)

    ```
    openssl req -key server.key -new -out server.req -subj "/C=CN/ST=BeiJing/O=bigdata/CN=server1/CN=localhost/emailAddress=15617165229@163.com"

    参数说明
    req——执行证书签发命令
    -new——新证书签发请求
    -key——指定私钥路径
    -out——输出的csr文件的路径
    -subj——证书相关的用户信息(subject的缩写)
    ```

    3. 根据证书申请文件生成CA的服务器端证书文件

    ```
    openssl x509 -req -in server.req -CA ca.pem -CAkey privkey.pem -out server.crt -days 3650

    参数说明
    -CA——指定CA证书的路径
    -CAkey——指定CA证书的私钥路径
    -CAcreateserial——表示创建证书序列号文件,创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀
    #加上 -CAcreateserial file.srl 老报错,所以去掉了
    ```

    4. 合并证书和私钥组成pem文件

    ```
    cat server.key server.crt > server.pem
    ```

    5. 验证服务器端证书,此处可能需要输入密码

    ```
    Openssl verify -CAfile ca.pem server.pem

    输出ok即可
    ```

    3. #### 生成客户端pem文件

    1. 使用RSA加密算法生成一个客户端私钥文件

    ```
    openssl genrsa -out client.key 2048
    ```

    2. 根据密钥文件生成一个证书申请文件(req)

    ```
    openssl req -key client.key -new -out client.req -subj "/C=CN/ST=BeiJing/O=bigdata/CN=client1/emailAddress=15617165229@163.com"
    ```

    3. 根据证书申请文件生成CA的客户端证书文件:

    ```
    openssl x509 -req -in client.req -CA ca.pem -CAkey privkey.pem -out client.crt -days 3650
    ```

    4. 合并证书及私钥文件成PEM文件

    ```
    cat client.key client.crt > client.pem
    ```

    5. 验证客户端证书

    ```
    openssl verify -CAfile ca.pem client.pem

    输出ok即可
    ```

    截止,完成了证书的创建过程

    4. #### 配置mongodb的ssl支持

    1. 首先需要对mongodb服务器进行设置,这些设置可以在调用mongod启动mongodb服务器时,通过命令行参数进行指定,也可以通过配置文件进行指定,配置文件的默认位置是/usr/local/etc/目录下的mongod.conf。配置内容如下:

    ```
    net:
    bindIp: 127.0.0.1
    net:
    ssl:
    mode: requireSSL
    PEMKeyFile: /data/mongo_ssl/server.pem
    CAFile: /data/mongo_ssl/ca.pem
    allowInvalidHostnames: true
    ```

    **注意**
    这里PEMKeyFile和CAFile中的文件路径,一定指向我们在上面步骤中生成的文件。
    这时我们就可以通过如下命令,启动mongodb:

    ```
    mongod --config /usr/local/etc/mongod.conf
    或者
    systemctl start mongod
    ```

    2. 设置pem文件所在路径的 mongod 权限

    3. 在启动完mongodb数据库后,可以通过如下命令,使用mongo shell连接mongodb数据库:

    ```
    mongo --sslAllowInvalidCertificates --sslAllowInvalidHostnames --ssl --sslPEMKeyFile /data/mongo_ssl/client.pem --sslCAFile /data/mongo_ssl/ca.pem
    ```

    这样我们就可以通过mongo shell连接到本地的mongodb服务器上了,如下图所示:

     

  • 相关阅读:
    一个新的Activity跳转到带有Framgment的Activity页面
    安卓图片下载及存储
    安卓4.0以上 UDP 发送端
    安卓 service 后台运行,activity 启动和停止service
    安卓 BaseAdapter ListView和Button
    安卓点击两次返回键退出程序
    安卓 surfaceview 添加点击事件
    Mybatis
    Cookie
    AJAX原生代码
  • 原文地址:https://www.cnblogs.com/wts-home/p/15399204.html
Copyright © 2011-2022 走看看