达梦数据库配置SSL通信加密

1、安装 openssl-win32.exe

解压 windwosOpenssl_32and64.zip 文件,双击.exe 文件进行安装,请将安装目录维持默认(即 C:\OpenSSL);安装完成以后,增加系统环境变量环境变量“OPENSSL_CONF”值为“C:\OpenSSL\bin\openssl.cfg”。并将“C:\OpenSSL\bin\”加到 path 环境变量中。

注:请安装32位的openssl软件。软件下载地址:http://slproweb.com/products/Win32OpenSSL.html

2、安装JDK和keytool.exe

确保机器上已经安装了JDK,并将 JDK 下的 keytool.exe 所在的文件路径加到 path 环境变量中。如果你的机器上没有安装 JDK,但是安装了达梦客户端,比如安装在D盘,则在“D:\dmdbms\jdk\bin”中有 keytool.exe 工具,那么你可以将“D:\dmdbms\jdk\bin”加到 path 环境变量中。

3、配置openssl.cfg文件

用记事本打开C:\OpenSSL\bin\路径下的openssl.cfg 文件,然后在[ CA_default ]一节修改如下的配置项:

[ CA_default ]
dir  = ./ca                   # Where everything is kept 
certs = $dir/certs             # Where the issued certs are kept
crl_dir  = $dir/crl            # Where the issued crl are kept
database = $dir/index.txt     # database index file. 
#unique_subject = no        # Set to 'no' to allow creation of
#several ctificates with same subject.
new_certs_dir  = $dir/newcerts  # default place for new certs.
certificate = ca-cert.pem        #The CA certificate 
serial = $dir/serial             # The current serial number
crlnumber = $dir/crlnumber    # the current crl number
#must be commented out to leave a V1 CRL
crl  = $dir/crl.pem              # The current CRL
private_key  = ca-key.pem      # The private ke
RANDFILE = $dir/private/.rand   # private random number file

4、生成CA私钥和自签名证书

运行cmd.exe,切换到 C:\OpenSSL\bin 目录下,执行以下的脚本:

set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
rd /s /q ca
mkdir .\ca
mkdir .\ca\newcerts
mkdir .\ca\private
copy nul ca\index.txt
set /p="01"<nul>>ca\serial
mkdir server_ssl
mkdir client_ssl
#echo 生成 ca 私钥(ca-key.pem)和 ca 自签名证书(ca-cert.pem),需输入 ca 私钥存储密码
openssl  req  -new  -x509  -days  3650  -keyout  ca-key.pem  -out  ca-cert.pem  -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=tech/emailAddress=tech@test.com"

注:最后一条命令执行过程会要求用户输入长度大于等于 4 字符的 ca 私钥存储密码。本例设置的密码是123456。生成的ca私钥是ca-key.pem,自签名证书是:ca-cert.pem,都位于C:\OpenSSL\bin目录下面。

5、生成server端私钥和被ca签名的server数字证书

在上述命令行程序中继续执行下述语句:

set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
#生成server私钥 server-key.pem(无密码)
openssl genrsa -out server-key.pem 2048
#生成server证书请求server.csr
openssl  req  -new  -key  server-key.pem  -out  server.csr  -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=server/emailAddress=server@demeng.com"
#生成 server经ca签名的证书server-cert.pem
openssl ca -startdate 20190821235959-0700 -enddate 20290821235959-0700 -in server.csr -out server-cert.pem
#将server可信证书转换为格式X509格式
openssl x509 -in server-cert.pem -out server.cer
copy ca-cert.pem server_ssl\
copy ca-key.pem server_ssl\
copy server.csr server_ssl\
copy server.cer server_ssl\
copy server-cert.pem server_ssl\
copy server-key.pem server_ssl\

注:执行过程中,当要求输入 ca-key.pem 的存储私钥时,请输入前面设置的“123456”。

6、生成用户私钥和被ca签名的用户数字证书

此处的用户名为 SYSDBA,若是其他用户名只需全局替换用户名即可。在上述命令行程序中继续执行下述语句:

set OPENSSL_CONF=C:\OpenSSL\bin\openssl.cfg
echo %OPENSSL_CONF%
mkdir .\SYSDBA
#生成SYSDBA 私钥 client-key.pem
openssl genrsa -out SYSDBA/client-key.pem 2048
#生成SYSDBA证书请求client.csr
openssl  req  -new  -key  SYSDBA/client-key.pem  -out  SYSDBA/client.csr  -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=SYSDBA/emailAddress=SYSDBA@dameng.com"
#生成SYSDBA经ca签名证书client-cert.pem
openssl ca -startdate 20190821235959-0700 -enddate 20290821235959-0700 -in SYSDBA/client.csr  -out  SYSDBA/client-cert.pem
​
#将X509格式的 client-key.pem 和 client-cert.pem 合并转换为 pkcs12 格式的文件client-pkcs.p12
#务必输入export password为 changeit(小写)
openssl  pkcs12  -export  -inkey  SYSDBA/client-key.pem  -in  SYSDBA/client-cert.pem  -out SYSDBA/client-pkcs.p12
keytool -import -alias ca -trustcacerts -file ca-cert.pem -keystore SYSDBA/.keystore -deststorepass changeit  -noprompt
keytool -import -alias server -trustcacerts -file server.cer -keystore SYSDBA/.keystore -deststorepass changeit  -noprompt
keytool  -v  -importkeystore  -srckeystore  SYSDBA/client-pkcs.p12  -srcstoretype  PKCS12  -keystore  SYSDBA/.keystore -deststorepass changeit
copy ca-cert.pem SYSDBA\
move SYSDBA client_ssl\

注:执行过程中,当要求输入 ca-key.pem 的存储私钥时,请输入“123456”,当要求输入 pkcs.p12 的 export password 时,请务必输入小写的“changeit”。
若需生成多个用户则全局替换用户名之后,再次执行,一个用户名只能执行一次,执行两次或以上会出现错误;最后将目录下的server_ssl和client_ssl文件夹都拷贝到dmdbms\bin\目录下即可使用。

7、开启通信加密

修改dm.ini将ENABLE_ENCRYPT的值改为1。

8、使用ssl加密方式登陆数据库

8.1disql工具

需要将新生成的加密client_ssl替换系统自带的client_ssl。切换到dmdbms/bin目录:
./disql SYSDBA/SYSDBA#/dm/dmdbms/bin/client_ssl/SYSDBA/@changeit

8.2 使用客户端manager工具

在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值