KingbaseES V8 ssl加密

KingbaseES 数据库提供了各种接口连接数据库进行加密传输的功能。在进行加密传输前,需对客户端以及服务端进行证书配置。

如果服务器要求一个可信的客户端证书, libkci 将发送用户主目录中 ~/.kingbase/kingbase.crt 文件存储的证书。该证书必须由一个受服务器信任的证书机构(CA)签发。也必须存在一个匹配的私钥文件 ~/.kingbase/kingbase.key。该私钥文件不允许全局或组用户的任何访问,可以通过命令 chmod 0600 ~/.kingbase/kingbase.key 实现。证书和密钥文件的位置可以使用连接参数sslcert sslkey 或者环境变量 KCISSLCERT KCISSLKEY 覆盖。

在一些情况下,客户端证书可以由中间证书机构签名,而不是由服务器直接信任的证书机构。要使用这样一个证书,将签发机构的证书加入到 kingbase.crt 文件,然后是它的上级机构的证书,并且一直到一个受服务器信任的证书机构(机构或者中间机构),即由该服务器的 root.crt 文件中的一个证书签发。

注意: 客户端的 ~/.kingbase/root.crt 列出了被认为可信的能用于签发服务器证书的顶层 CA。原则上不需要列出签发客户端证书的 CA,大部分情况下这些 CA 也被信任可以用于服务器证书。

将客户端证书文件 kingbase8.crtkingbase8.key 以及 root.crt 拷贝放至客户端相应目录下。

数据库服务器配置

  1. 配置 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)

2. 配置 sys_hba.conf 文件:
hostssl all all 0.0.0.0/0 md5 clientcert=1
3. 重启数据库服务器

客户端编程接口配置

KingbaseES 数据库的驱动都通过以下 4 个连接参数来配置 SSL 需要的参数:
• sslmode 配置证书验证方式,该参数支持 6 个值: disable(禁用 SSL)、 allowpreferrequireverify-ca
verify-full。使用 verify-ca 会验证证书,使用 verify-full 模式会额外对主机名进行验证,使用 verify-ca verifyfull 时,需要指定证书位置。
• sslrootcert 指定根证书文件的位置,如不指定, Linux 默认路径为”$HOME/.kingbase8/root.crtWindows
认路径为”%APPDATA%\kingbase8\root.crt”,将服务器 data 目录下的 root.crt 放到对应的目录下即可。只有
verify-full 模式会对主机名进行验证。
• sslcert 配置客户端证书位置,如不指定, Linux 默认路径为”$HOME/.kingbase8/kingbase8.crt”Windows
认路径为”%APPDATA%\kingbase8\kingbase8.crt”,将服务器 data 目录下的 kingbase8.crt 放到对应的目录下
即可。
• sslkey 配置私钥文件位置,如不指定, Linux 默认路径为”$HOME/.kingbase8/kingbase8.key”Windows 默认
路径为”%APPDATA%\kingbase8\kingbase8.key”,将服务器 data 目录下的 kingbase8.key 放到对应的目录下
即可。
1. JDBC 配置示例:
jdbc:kingbase8://127.0.0.1:54321/test?sslmode=verify-ca&sslrootcert=/home/test/root.
crt&sslcert=/home/test/kingbase8.crt&sslkey=/home/test/kingbase8.pk8

2.DCI 配置示例:
sys_service.conf 文件中配置以下内容:
SSLmode=vc # d - disable; a - allow; p - prefer; r - require; vc - verify-ca; vf - verify-full;
pgopt={sslrootcert=/home/wli/cert/root.crt sslcert=/home/wli/cert/kingbase8.crt sslkey=/home/wli/cert/
kingbase8.key}

  1. 服务端开启证书访问模式,API 以及客户端访问数据库时是否必须要有证书;

如果只想进行服务端单向验证,可不使用客户端证书。

2、SSL证书是否有有效期,服务端和客户端证书分别是如何授权管理的:

SSL证书有有效期。 服务端和客户端的证书都是 CA中心(比如openssl或某商业的CA)授权管理发放的。

3、使用 SSL 证书访问数据库,证书失效或被破坏的异常情况对 API访问数据库有什么影响:

证书失效或被破坏,新的API无法与服务端连接。

4、如需替换服务端或客户端证书,服务端证书替换需要哪些操作,客户端证书替换需要哪些操作,对系统运行有什么影响

服务端和客户端按流程直接替换即可,比如证书文件的替换。

替换前已经建立的连接和会话不受影响,直到会话和连接结束。

替换后新的连接使用新证书,重新验证。

不需要重启服务端。

5、使用 SSL 证书访问数据库,性能及稳定性方面有什么影响。

性能受影响,大概损失5%-10%。

稳定性不受影响

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值