DM8配置SSL

一、Docker运行DM8服务

a.获取镜像并加载
dm8-20250206-x86-rh6-rq-single.tar

bash 复制代码
docker load -i dm8_20250206_x86_rh6_rq_single.tar

b.创建数据目录

bash 复制代码
mkdir -p /opt/docker/dm8_ssl/data
chmod 777 /opt/docker -R

c.运行(数据库密码根据实际情况修改)

bash 复制代码
docker run -d \
  --name dm8_ssl \
  --privileged=true \
  --restart=always \
  -p 15236:5236 \
  -e LD_LIBRARY_PATH=/opt/dmdbms/bin \
  -e PAGE_SIZE=16 \
  -e EXTENT_SIZE=32 \
  -e LOG_SIZE=1024 \
  -e UNICODE_FLAG=1 \
  -e INSTANCE_NAME=dm8_ssl \
  -e SYSDBA_PWD={{自定义密码}} \
  -v /opt/docker/dm8_ssl/data:/opt/dmdbms/data \
  dm8:dm8_20250206_rev257733_x86_rh6_64

d.查看日志

bash 复制代码
docker logs -f dm8_ssl

e.客户端连接测试

连接信息如下:

hostname: localhost

port: 15236

username1: SYSDBA

password1: {{自定义密码}}

二、配置SSL

a.容器内已经存在证书文件

bash 复制代码
# 客户端证书
/opt/dmdbms/bin/client_ssl
# 服务端证书
/opt/dmdbms/bin/server_ssl

b.将容器内证书复制到服务器上

bash 复制代码
docker cp dm8_ssl:/opt/dmdbms/bin/client_ssl/SYSDBA /root/ssl_file/dm8_ssl

c.进入证书目录

bash 复制代码
cd /root/ssl_file/dm8_ssl/SYSDBA

d.编写脚本(rebuild_keystore.sh)

bash 复制代码
#!/bin/bash
#cd /opt/dmdbms/bin/client_ssl/SYSDBA
echo "=== 重新生成 .keystore 文件 ==="

# 输入新密码
read -sp "请输入新的密钥库密码: " NEW_PASS
echo ""

# 备份旧文件
[ -f .keystore ] && mv .keystore .keystore.bak

# 生成 PKCS12
openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.p12 -password pass:$NEW_PASS

# 转换为 keystore
keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass $NEW_PASS -destkeystore .keystore -deststorepass $NEW_PASS -noprompt

# 导入 CA 证书
keytool -import -alias ca -trustcacerts -file ca-cert.pem -keystore .keystore -storepass $NEW_PASS -noprompt

# 清理临时文件
rm -f client.p12

# 验证
echo "=== 验证 keystore ==="
keytool -list -keystore .keystore -storepass $NEW_PASS

echo "✅  完成!新密码已设置为: $NEW_PASS"

e.执行脚本(记住设置的密码,客户端连接时需要用到)

bash 复制代码
./rebuild_keystore.sh

f.修改服务端配置

bash 复制代码
# 将ENABLE_ENCRYPT设置为1
vim /opt/docker/dm8_ssl/data/DAMENG/dm.ini

g.重启服务

bash 复制代码
# 方式一
docker restart dm8_ssl
# 方式二
docker exec -it dm8_ssl /bin/bash
/opt/dmdbms/bin/DmService restart

三、验证SSL

a.dbeaver验证

bash 复制代码
# JdbcURL如下:
jdbc:dm://ip:15236?sslFilesPath=E:\\client_ssl\\dm8&sslKeystorePass=keystore文件密码
sslFilesPath: 指定 .keystore 文件目录,注意是所在目录
sslKeystorePass: 生成 .keystore 文件时设置的密码
相关推荐
星恒随风2 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
吴名氏.3 小时前
Java转AI Agent教程(第十三周)混合检索与重排
java·数据库·人工智能·ai·ai agent
爱码少年4 小时前
Springboot下如何将CSV文件数据导入H2、Mysql数据库表
数据库·mysql·csv
可乐ea5 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
阿义有问题6 小时前
MySQL 迁移达梦全流程实战:DTS 七步图解 + 对象名全大写适配(附踩坑清单)
数据库
猫猫不是喵喵.8 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
lsc_blog10 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风10 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
略懂而已10 小时前
安装SSL后网站速度变慢?
网络·网络协议·ssl
Ashe81313 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库