人大金仓(kes)ssl认证传输加密

服务器:
1.确保安装openssl
创建目录存放认证mm,位置mkdir -p /root/mm
2.在data目录下,创建自签名的证书
  为服务器创建一个快速的自签名的证书,填充那些openssl要求的信息。确保把本地主机名当做"Common Name"输入;挑战密码可以留空。 该程序将生成一个用口令保护的密钥,它不会接受小于四字符的口令。
  openssl req -new -text -out server.req -days 3650
密码:ASDFGhjkl!@#$%^7890         ###自定义,两次,之后确定往下
A challenge password []:ASDFGhjkl!@#$%^7890      ##再输入一次
  要移去密钥(如果你想自动启动服务器就必须这样),运行下面的命令:
  openssl rsa -in privkey.pem -out server.key
密码:ASDFGhjkl!@#$%^7890
  rm privkey.pem
  将一个证书变成自签名的证书并复制密钥和证书到服务器将要查找它们的地方
  openssl req -X509 -in server.req -text -key server.key -out server.crt -days 3650
  【有的openssl的命令是 openssl req -x509 -in server.req -text -key server.key -out server.crt -days 3650】
#####警告忽略
  修改文件权限,如果文件的权限比这个更自由,服务器将拒绝该文件。
  chmod og-rwx server.key
  生成根证书
  cp server.crt root.crt
修改三个文件权限
chown kingbase. /root/mm/*
chmod 600 /root/mm/*

创建目录 mkdir -p /home/kingbase/.kingbase
6.为客户端创建所需证书
  生成kingbase8.key
cd /home/kingbase/.kingbase/
  openssl genrsa -des3 -out kingbase.key 1024
密码:ASDFGhjkl!@#$%^7890
  openssl rsa -in kingbase.key -out kingbase.key
密码:ASDFGhjkl!@#$%^7890
  chmod 400 kingbase.key
  生成kingbase8.csr,CN需要指定为要连接数据库的用户名(需要免密登录的话必须指定正确,不需要的话并不强制确定)
  openssl req -new -key kingbase.key -out kingbase.csr -subj '/C=GB/ST=Berkshire/L=Newbury/O=Kingbase/CN=system' 
  生成kingbase8.crt
cp /root/mm/root.crt /home/kingbase/.kingbase/
cp /root/mm/server.key /home/kingbase/.kingbase/
  openssl X509 -sha1 -req -in kingbase.csr -CA root.crt -CAkey server.key -out kingbase.crt -CAcreateserial -days 3650
 【有的openssl命令是小写的x例: openssl x509 -sha1 -req -in kingbase.csr -CA root.crt -CAkey server.key -out kingbase.crt -CAcreateserial -days 3650 】
  生成kingbase8.pk8
修改权限
chown kingbase. /home/kingbase/.kingbase/*      
chmod 0600 /home/kingbase/.kingbase/*
7.客户端的证书需要放到机器用户的家目录/.kingbase的目录里把kingbase.key,kingbase.crt,root.crt放入到.kingbase目录,并设置权限为0600。

  把server.key,server.crt,root.crt放入到data目录中,并设置权限为0600。
cd /root/mm
cp server.crt /data/dbdata/data/data/
chown kingbase. /data/dbdata/data/data/server.crt
cd /home/kingbase/.kingbase
cp server.key root.crt /data/dbdata/data/data/ 
chown kingbase. /data/dbdata/data/data/server.key 
chown kingbase. /data/dbdata/data/data/root.crt 

###mm目录中也有,找一下相对应文件

3.配置kingbase.conf文件
ssl = on                # (change requires restart)
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
                    # (change requires restart)
#ssl_prefer_server_ciphers = on        # (change requires restart)
#ssl_ecdh_curve = 'prime256v1'        # (change requires restart)
#ssl_cert_file = 'server.crt'        # (change requires restart)
#ssl_key_file = 'server.key'        # (change requires restart)
ssl_ca_file = 'root.crt'            # (change requires restart)
#ssl_crl_file = ''            # (change requires restart)
4.配置sys_hba.conf文件(如果前面有相同配置的ip地址,需注释掉,否则解析不到ssl认证方式)
hostssl    all             all             0.0.0.0/0               md5  clientcert=1
5.重启数据库服务器
  ksql连接时需要指定-h参数

  
需要用JDBC时SSL的配置如下
jdbc:
通过参数sslmode配置证书验证方式,该参数支持四个值:disable(禁用SSL)、require、verify-ca、verify-full。使用verify-ca和verify-full时,需通过连接参数sslrootcert指定根证书文件的位置,如不指定,Linux默认路径为$HOME/.kingbase8/root.crt,Windows默认路径为%APPDATA%\kingbase8\root.crt,将服务器data目录下的root.crt放到对应目录下即可。
通过参数sslcert配置客户端证书位置,如不指定,Linux默认路径为$HOME/.kingbase8/kingbase8.crt,Windows默认路径为%APPDATA%\kingbase8\kingbase8.crt,将服务器data目录下的kingbase8.crt放到对应目录下即可。
通过参数sslkey配置秘钥文件位置,如不指定,Linux默认路径为$HOME/.kingbase8/kingbase8.pk8,Windows默认路径为%APPDATA%\kingbase8\kingbase8.pk8,将服务器data目录下的kingbase8.pk8放到对应目录下即可。
举例:jdbc:kingbase8://192.168.222.128:54321/TEST?sslmode=verify-ca&sslrootcert=root.crt&sslcert=kingbase8.crt&sslkey=kingbase8.pk8

!!!!!单机例子(集群换相应串):jdbc:kingbase8://10.75.30.181:54321/test?sslmode=verify-ca&sslrootcert=C:\Users\Administrator\Desktop\中海油\dump_bak\root.crt&sslcert=C:\Users\Administrator\Desktop\中海油\dump_bak\kingbase8.crt&sslkey=C:\Users\Administrator\Desktop\中海油\dump_bak\kingbase.key

注:目录位置替换


!!!!!!可忽略:
SSL证书免密登录说明
1.首先准备一套适用于测试登录用户的证书,生成证书时CN值改为测试用户的用户名,证书生成方法见上
2.在家目录下创建一个.kingbase目录(例如:/home/kingbase/.kingbase)
3.把kingbase.key,kingbase.crt,root.crt放入到.kingbase目录,并设置权限为0600
4.把server.key,server.crt,root.crt放入到data目录中,并设置权限为0600
5.初始化数据库,设置conf文件里面,ssl参数值为on,ssl_ca_file参数设置为root.crt
6.设置hba文件
    6.1 增加hostssl项,注意前面如果有相同的ip限制或包含此ip的范围限制,需要注释掉相同项,否则会首先解析到上面的ip连接方式,并不会采用ssl方式认证连接。
    6.2 设置hostssl项的认证方式为cert
    6.3    连接的时候客户端需要指定-h选项即指定ip地址
例:hostssl all             all             127.0.0.1               cert

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值