服务器开启SSL并生成证书
- 使用LibPQFactory
-
服务器
-
确保安装openssl
-
在data目录下,创建自签名的证书
# 为服务器创建一个快速的自签名的证书,填充那些openssl要求的信息。确保把本地主机名当做"Common Name"输入;挑战密码可以留空。该程序将生成一个用口令保护的密钥,它不会接受小于四字符的口令。 openssl req -new -text -out server.req # 要移去密钥(如果你想自动启动服务器就必须这样),运行下面的命令: openssl rsa -in privkey.pem -out server.key rm privkey.pem # 将一个证书变成自签名的证书并复制密钥和证书到服务器将要查找它们的地方 openssl req -x509 -in server.req -text -key server.key -out server.crt # 修改文件权限,如果文件的权限比这个更自由,服务器将拒绝该文件。 chmod og-rwx server.key # 生成根证书 cp server.crt root.crt
-
配置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)
-
配置sys_hba.conf文件
hostssl all all 0.0.0.0/0 md5 clientcert=1
-
重启数据库服务器
-
-
客户端证书
# 生成kingbase8.key openssl genrsa -des3 -out kingbase8.key 1024 openssl rsa -in kingbase8.key -out kingbase8.key chmod 400 kingbase8.key # 生成kingbase8.csr,CN需要指定为要连接数据库的用户名,如需匹配不同的用户,可指定为* openssl req -new -key kingbase8.key -out kingbase8.csr -subj '/C=GB/ST=Berkshire/L=Newbury/O=Kingbase/CN=TEST' # 生成kingbase8.crt openssl x509 -req -in kingbase8.csr -CA root.crt -CAkey server.key -out kingbase8.crt -CAcreateserial # 生成kingbase8.pk8 openssl pkcs8 -topk8 -outform DER -in kingbase.key -out kingbase8.pk8 -nocrypt
-
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放到对应目录下即可。只有verify-full模式会对主机名进行验证。
- 通过参数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放到对应目录下即可。