暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a SSL加密传输

原创 贺美存 2022-02-11
483

  • 为什么要使用SSL加密传输:
一般情况下, JDBC和集群间传输的信息,可以通过抓包工具等手段进行获取,并进行破译,在某些安全项目中,需要将JDBC与集群间的传输信息进行加密,以保证数据的安全,这时就需要开启SSL加密传输。

  • 什么是SSL加密传输:
SSL加密技术是为保护敏感数据在传送过程中的安全,而设置的加密技术。如果使用JDBC 进行SSL数据传输,前提是必须集群支持,必须先开启集群端的SSL功能,集群对SSL功能的开启,请参考集群手册  


  • SSL传输的配置方式:
集群开启SSL方式后,会生成3个文件,如下:
ca-cert.pem
server-cert.pem
server-key.pem
根据以上文件生成jdbc连接用密钥,执行如下命令:
keytool -import -alias GBaseCACert -file ca-cert.pem -keystore truststore
openssl x509 -outform DER -in client-cert.pem -out client.cert
执行完以上两条语句后,会生成10个文件,其中包含client.cert和truststore,然后再执行如下命令:
keytool -import -file client.cert -keystore keystore -alias GBaseClientCertificate
在以上命令的执行过程中,会提示输入认证,即密码,这个密码在JDBC中也会用到,经过以上命令,会生成11个文件,其中包含truststore和keystore两个文件,这两个文件就是JDBC需要的文件。  


  • 代码示例如下:
String url = "jdbc:gbase://192.168.8.27:5258/gbase?user=root&useSSL=true&requireSSL=true";
String trustStorePath = "D:\\JDBCTest\\src\\test-certs\\truststore";
String keyStorePath = "D:\\JDBCTest\\src\\test-certs\\keystore";
System.setProperty("javax.net.ssl.keyStore", keyStorePath);
System.setProperty("javax.net.ssl.keyStorePassword", "password1");
System.setProperty("javax.net.ssl.trustStore", trustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword", "password1");
Connection conn = DriverManager.getConnection(url);
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select 1");
while(rs.next()){
System.out.println(rs.getString(1));
}  

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论