• GBase 8c以SSL方式通过JDBC连接-客户端配置


    客户端配置

    配置步骤如下:

    上传证书文件,将在服务端配置章节生成出的文件client.key.pk8,client.crt,cacert.pem放置在客户端。

    示例

    注:示例1和示例2选择其一。

    public class SSL{

    public static void main(String[] args) { Properties urlProps = new Properties();

    String urls = "jdbc:postgresql://10.29.37.136:5600/postgres";

    /**

    * ================== 示例1 使用NonValidatingFactory通道

    */ urlProps.setProperty("sslfactory","org.postgresql.ssl.NonValidatingFactory"); urlProps.setProperty("user", "world");

    urlProps.setProperty("password", "test@123"); urlProps.setProperty("ssl", "true");

    /**

    * ================== 示例2 使用证书

    */

    urlProps.setProperty("sslcert", "client.crt"); urlProps.setProperty("sslkey", "client.key.pk8"); urlProps.setProperty("sslrootcert", "cacert.pem"); urlProps.setProperty("user", "world"); urlProps.setProperty("ssl", "true");

    /* sslmode可配置为:require、verify-ca、verify-full,以下三个示例选择其一*/

    /* ================== 示例2.1 设置sslmode为require,使用证书 */ urlProps.setProperty("sslmode", "require");

    /* ================== 示例2.2 设置sslmode为verify-ca,使用证书 */ urlProps.setProperty("sslmode", "verify-ca");

    /* ================== 示例2.3 设置sslmode为verify-full,使用证书(Linux下验证) */ urls = "jdbc:postgresql://world:5600/postgres";

    urlProps.setProperty("sslmode", "verify-full"); try {

    Class.forName("org.postgresql.Driver").newInstance();

    } catch (Exception e) { e.printStackTrace();

    }

    try {

    Connection conn;

    conn = DriverManager.getConnection(urls,urlProps); conn.close();

    } catch (Exception e) { e.printStackTrace();

    }

    }

    }

    /**

    注:将客户端密钥转化为DER格式:

    openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt

    openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-MD5-DES

    openssl pkcs8 -topk8 -inform PEM -in client.key -outform DER -out client.key.der -v1 PBE-SHA1-3DES

    以上算法由于安全级别较低,不推荐使用。

    如果客户需要采用更高级别的私钥加密算法,启用bouncycastle或者其他第三方私钥解密密码包后可以使用的私钥加密算法如下:

    openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 AES128

    openssl pkcs8 -in client.key -topk8 -outform DER -out client.key.der -v2 aes-256-cbc -iter 1000000

    openssl pkcs8 -in client.key -topk8 -out client.key.der -outform Der -v2 aes-256-cbc -v2prf hmacWithSHA512

    启用bouncycastle:使用jdbc的项目引入依赖:bcpkix-jdk15on.jar包,版本建议:1.65以上。

    */

  • 相关阅读:
    从内核世界透视 mmap 内存映射的本质(源码实现篇)
    【STM32】RCC时钟模块(使用HAL库)
    给IDEA道个歉,这不是它的BUG,而是反编译插件的BUG。
    Flink之Watermark策略代码模板
    javaEE -3(12000字详解多线程)
    jenkins+allure+邮件发送配置
    【kubernetes篇】通过描述信息,理解Pod生命周期
    深入理解Lucene:开源全文搜索引擎的核心技术解析
    无人机无线Mesh自组网,CV5200远距离WiFi模组,实时通信传输技术
    计算机中的第二个伟大发明(JMP/JMPR)
  • 原文地址:https://blog.csdn.net/qq_41614765/article/details/126971142