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

news2024/9/21 11:11:31

相关概念:

SSL通过在发送方和接收方之间建立加密通道,确保数据在传输过程中的安全性和完整性。

SSL的关键特点

加密通信:SSL使用对称和非对称加密技术来加密数据,确保数据在传输过程中不被窃听或篡改。
身份验证:通过数字证书验证通信双方的身份,确保数据发送给正确的接收方。
完整性保护:使用消息认证码(MAC)或散列函数来检查数据在传输过程中是否被修改。

SSL的组件
证书:SSL使用数字证书来验证服务器的身份。每个证书都包含服务器的公钥和身份信息。
证书颁发机构(CA):独立的第三方,用于验证和颁发数字证书,确保它们的可靠性和有效性。
加密算法:SSL使用多种加密算法,如RSA、AES和3DES,来加密和解密数据。

SSL的握手过程
客户端Hello:客户端发送一个包含其SSL版本和加密套件的请求。
服务器Hello:服务器响应客户端的请求,选择一个加密套件,并发送其证书。
密钥交换:客户端和服务器使用选定的加密套件交换密钥,以创建会话密钥。
会话建立:使用会话密钥加密和解密数据,确保数据的私密性和完整性。

CA,即Certificate Authority,数字证书中心。 是指具备一定资质条件的数字证书签发机构,包含根密钥和根证书, 其核心功能就是通过根密钥和根证书并使用一定的算法来”签发”和”管理”数字证书。

数字证书 通常是由相关的CA进行签发,安全性可以得到绝对可靠。通常情况下,数字证书中一般包含公钥并由CA对其进行数字签名,证书的作用也主要是用来证明公钥的真实性与合法性。

数字签名 数字签名是一种基于公钥加密技术的电子签名,用于确保数据的完整性和验证数据发送者的身份。它通过使用发送者的私钥对数据进行加密,接收者则使用发送者的公钥对签名进行解密和验证。

一、安装OPENSSL工具

下载openssl软件库包。
官网 https://www.openssl.org/source/old/
或者:软件下载地址:http://slproweb.com/products/Win32OpenSSL.html

双击运行Win64OpenSSL-3_3_2.exe文件,注意安装路径位置不要带有空格或者中文字符,其他默认下一步即可
在这里插入图片描述


注意在写安装路径的时候,不要用Program files路径,系统默认可能选择此路径。后续会报错:
在这里插入图片描述
报错:Can’t open “C:\Program Files\OpenSSL-Win64\bin” for reading, Permission denied

用管理员身份执行cmd也报错。


安装路径设置如下路径:
在这里插入图片描述

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0ee92cf227bc4064adde777e994151df.pn

在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建系统环境变量:
增加系统环境变量环境变量“OPENSSL_CONF”值为“C:\OpenSSL-Win64\bin\openssl.cfg”。
在这里插入图片描述

并将“并将“C:\OpenSSL-Win64\bin\”加到 path 环境变量中。”加到 path 环境变量中。
在这里插入图片描述

二、配置openssl.cfg文件

用记事本打开C:\OpenSSL\bin\路径下的openssl.cfg 文件
dir:所有生成的文件存放的默认路径
database:签发过的证书的列表文件
new_certs_dir:存放所有新签发的证书
serial:下一个要签发的证书的序号,第一个从1开始
certificate:CA的证书文件的名字
private_key:CA的私钥文件的名字
default_days:签发证书的默认有效期,365天会经常过期不能用了,我们手动设置为3650天。
default_bit:私钥默认的长度大小,1024不够安全,我们手动设置2048
在这里插入图片描述

三、安装JDK

下载地址:
官网下载地址 https://www.oracle.com/java/technologies/javase

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

切换到openssl的bin目录下:可以查看帮助菜单
在这里插入图片描述

执行以下的脚本:

set OPENSSL_CONF=C:\OpenSSL-Win64\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  cakey.pem  -out  cacert.pem  -subj "/C=cn/ST=hubei/L=wuhan/O=dameng/OU=tech/CN=tech/emailAddress=tech@test.com"

执行脚本
call SSL.bat
在这里插入图片描述

本例设置的密码是123456。生成的ca私钥是ca-key.pem,自签名证书是:ca-cert.pem,都位于C:\OpenSSL-Win64\bin目录下面。

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

执行如下脚本:
备注:由于我直接执行会有乱码,所以一条一条的执行如下脚本

set OPENSSL_CONF=C:\OpenSSL-Win64\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 --days 365 -in server.csr -out server-cert.pem
#将server可信证书转换为格式X509格式
openssl x509 -in server-cert.pem -out server.cer
copy cacert.pem server_ssl\
copy cakey.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\

报错:Could not open file or uri for loading CA private key from ./CA/private/cakey.pem: No such file or directory
在这里插入图片描述
将cakey.pem以及cacert.pem复制到/CA/private/目录
在这里插入图片描述
执行过程中,当要求输入 cakey.pem 的存储私钥时,请输入前面设置的“123456”。

openssl ca --days 365 -in server.csr -out server-cert.pem

在这里插入图片描述

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

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

set OPENSSL_CONF=C:\OpenSSL-Win64\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 --days 365 -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\

在这里插入图片描述
注:执行过程中,当要求输入 cakey.pem 的存储私钥时,请输入“123456”,当要求输入 pkcs.p12 的 export password 时,请务必输入小写的“changeit”。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若需生成多个用户则全局替换用户名之后,再次执行,一个用户名只能执行一次,执行两次或以上会出现错误;

最后将目录下的server_ssl和client_ssl文件夹都拷贝到dmdbms\bin\目录下即可使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

若依VUE项目安全kind-of postcss vite漏洞扫描和修复

npm install unplugin-auto-import0.16.7 npm install vite3.2.11 升级vite、unplugin-auto-import npm install 报错New major version of npm available! 8.5.5 -> 10.8.3&#xff0c;使用命令npm install --force npm install --force

源代码防泄密的危害有哪些?担心源代码泄露?教你五种方法彻底阻止源代码泄密问题!

在数字经济蓬勃发展的今天&#xff0c;源代码&#xff0c;这个企业的核心技术资产&#xff0c;其安全性直接关系到企业的竞争力与生存。 一旦源代码泄露&#xff0c;不仅可能导致巨大的经济损失&#xff0c;更可能让企业陷入法律纠纷与声誉危机。 那么&#xff0c;源代码防泄密…

SOMEIP_ETS_117: SD_Entry_references_options_of_same_kind

测试目的&#xff1a; 验证DUT能够处理一个包含两种相同类型选项的SubscribeEventgroup消息&#xff0c;DUT可以选择拒绝订阅尝试或忽略该请求。 描述 本测试用例旨在确保DUT遵循SOME/IP协议&#xff0c;当接收到一个包含重复相同类型选项的SubscribeEventgroup消息时&#…

Gitlab学习(009 gitlab冲突提交)

尚硅谷2024最新Git企业实战教程&#xff0c;全方位学习git与gitlab 总时长 5:42:00 共40P 此文章包含第30p-第p34的内容 文章目录 冲突提交不同人修改不同文件不同人修改同文件的不同区域不同人修改同文件的相同区域 同时变更文件名和文件内容gitLab功能拓展code review代码复…

自动驾驶,被逼着上市?

上市了&#xff0c;然后呢&#xff1f; 转载&#xff1a;定焦&#xff08;dingjiaoone&#xff09;原创 作者 | 黎明 编辑 | 魏佳 很多人从来没体验过自动驾驶&#xff0c;但自动驾驶公司正在抢着上市。 今年以来&#xff0c;已有十多家自动驾驶相关公司启动上市流程。最新上…

halcon中的放射变换

放射变换原理 怎样计算放射变换 仿射变换affine是透视变换的子集 - 仿射矩阵 仿射变换矩阵为2*3的矩阵&#xff0c;第三列的元素起着平移的作用&#xff0c;前面两列的数字对角线上是缩放&#xff0c;其余为旋转或者斜切的作用 - 计算仿射矩阵只需要3对不共线的点 定义 指…

ozon买家网址是什么,跨境电商ozon买家网址

在网购的世界里&#xff0c;每一个平台都像是一座宝藏岛&#xff0c;等待着我们去探索、去发现。而提到跨境电商&#xff0c;不得不提的一个名字就是Ozon&#xff0c;它对于许多跨境购物爱好者来说&#xff0c;简直就是打开国际购物大门的金钥匙。那么&#xff0c;今天咱们就来…

米客方德SD NAND 掉电测试

SD NAND 异常上下电测试的作用 SD NAND 异常上下电测试是一项关键的测试步骤&#xff0c;对确保SD NAND在不同电源条件下的稳定性和可靠性至关重要。 通过模拟正常和异常电源情况&#xff0c;测试可以验证设备的电源管理功能、检测潜在错误和异常行为&#xff0c;并评估设备在…

巨人网络参展云栖大会,两款“游戏+AI”自研大模型应用首发

9月19日&#xff0c;2024云栖大会在杭州开幕&#xff0c;巨人网络携多项“游戏AI”新成果首次参展&#xff0c;两款自研大模型GiantGPT、BaiLing-TTS应用首发&#xff0c;巨人摹境、AI数字人等AI新技术亮相&#xff0c;全方位展示其作为中国“游戏AI”先行者在人工智能领域的前…

SAP付款和银行通信 预付款管理 集成场景

集成场景 用途 面向预付款管理的 SAP S/4HANA Cloud 提供与供给系统和转发系统的连接&#xff0c;以便输入和输出付款交易数据&#xff0c;作为其核心功能的一部分。 有关高级付款管理与外部供给系统和转发系统之间的通信的详细信息&#xff0c;请参阅文件处理器。 可以将预…

python基础(1)pyenv安装和对Django使用

pyenv安装 pyenv主要针对类 Unix 系统&#xff08;如 Linux、macOS&#xff09;用户&#xff0c;pyenv-win 是专为 Windows 开发的 pyenv 版本&#xff0c;允许您在不使用 WSL 的情况下管理多个 Python 版本和虚拟环境。 建议Git Bash&#xff1a; Powershell或Git Bash&…

如何使用ssm实现企业文档管理系统+vue

TOC ssm648企业文档管理系统vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。…

宠物空气净化器真的有必要买吗?哪款真的能吸毛?

这不是准备国庆小长假要来了吗&#xff0c;想带我家猫回家。但是我前一个月才告诉我妈我养了一只猫&#xff0c;她听到我养了猫之后&#xff0c;本来是没有任何波澜的&#xff0c;直到听到我说要把猫带回老家&#xff0c;还要和她一趟车回家的时候&#xff0c;她就开始骂我没良…

1.熟悉接口测试(Postman工具)

一、接口及其类型 API&#xff0c;应用编程接口&#xff0c;简称接口 通过接口&#xff0c;可以让程序和程序之间&#xff0c;能够互相交互。 接口分为两大类&#xff1a; 1&#xff09;基于TCP全双工&#xff08;适用于postman&#xff09; 2&#xff09;基于HTTP半双工 二、…

Flutter局域网广播(UDP通信)与TCP通信

前言 现在有一个需求&#xff0c;手机和ESP32通过WIFI进行通信。流程如下&#xff1a; 手机创建TCP服务器手机向192.168.0.255的1002端口广播自己的ip地址以及TCP服务器的端口号ESP32监听到1002的广播内容后&#xff0c;连接手机的TCP服务器。最后就是ESP32硬件和TCP服务器进…

C++速通LeetCode中等第2题-最长连续序列

方法一&#xff0c;排序后遍历&#xff0c;后减前1&#xff0c;计数&#xff0c; 相等跳过&#xff0c;后减前&#xff01;1就保存。 class Solution { public:int longestConsecutive(vector<int>& nums) {vector<int> ans;int count 1;sort(nums.begin(),n…

GPT代码记录

#include <iostream>// 基类模板 template<typename T> class Base { public:void func() {std::cout << "Base function" << std::endl;} };// 特化的子类 template<typename T> class Derived : public Base<T> { public:void…

收集松果-第15届蓝桥省赛Scratch中级组真题第4题

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第189讲。 如果想持续关注Scratch蓝桥真题解读&#xff0c;可以点击《Scratch蓝桥杯历年真题》并订阅合集&#xff0c;…

我的AI工具箱Tauri版-FunAsr音频转文本

本教程基于自研的AI工具箱Tauri版进行FunAsr音频转文本服务。 FunAsr音频转文本服务 是自研AI工具箱Tauri版中的一个高效模块&#xff0c;专为将音频或视频中的语音内容自动转化为文本或字幕而设计。用户只需简单配置输入、输出路径&#xff0c;即可通过FunAsr工具快速批量处理…