阿里云首页 相关技术圈

在Windows10系统的Java环境中通过SSL加密方式连接PolarDB MySQL

概述

本文主要介绍在Windows10系统的Java环境中,如何通过SSL加密方式连接云原生关系型数据库PolarDB MySQL。

详细信息

  1. 登录云数据库PolarDB控制台,选择目标地域,单击目标集群ID,单击安全管理,然后单击SSL状态右侧的开通按钮。
  2. 单击下载证书,下载的是压缩包,压缩包中包含3个文件,Java环境需要使用以.jks结尾的文件,具体文件信息请参见设置SSL加密。例如,解压后的路径为D:\ApsaraDB-CA-Chain\ApsaraDB-CA-Chain.jks
    说明
    • 在Java中使用JKS证书文件时,jdk7和jdk8需要修改默认的jdk安全配置,在应用程序所在主机的jre/lib/security/Java.security文件中,修改如下两项配置:
      jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
      jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
    • 若不修改jdk安全配置,会报如下错误。其它类似报错,一般也都由Java安全配置导致。
      Javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
  3. 通过SSL方式连接数据库,Java示例代码如下:
    package com.aliyun.sample;

    import com.mysql.cj.jdbc.MysqlDataSource;
    import java.sql.Connection;
    import java.sql.SQLException;

    public class Sample {

        public static void main(String[] args) {

            Connection conn = null;
            MysqlDataSource mysqlDS=null;

            try{
                mysqlDS = new MysqlDataSource();
                // set useSSL=true and provide truststore for server certificate verification.
                mysqlDS.setUseSSL(true);
                mysqlDS.setClientCertificateKeyStoreType("JKS");
                // 您的ApsaraDB-CA-Chain.jks路径 file:/D:\ApsaraDB-CA-Chain\ApsaraDB-CA-Chain.jks
                mysqlDS.setClientCertificateKeyStoreUrl("file:/D:\\xxxx\\ApsaraDB-CA-Chain.jks");
                // JAVA中密码统一为apsaradb
                mysqlDS.setClientCertificateKeyStorePassword("apsaradb");
                mysqlDS.setTrustCertificateKeyStoreType("JKS");
                // 您的ApsaraDB-CA-Chain.jks路径 file:/D:\ApsaraDB-CA-Chain\ApsaraDB-CA-Chain.jks
                mysqlDS.setTrustCertificateKeyStoreUrl("file:/D:\\ApsaraDB-CA-Chain\\ApsaraDB-CA-Chain.jks");
                // JAVA中密码统一为apsaradb
                mysqlDS.setTrustCertificateKeyStorePassword("apsaradb");
                // 您的数据库连接串
                mysqlDS.setServerName("rm-xxxxxx.mysql.rds.aliyuncs.com");
                // 您的数据库端口
                mysqlDS.setPort(3306);
                // 您的数据库账号
                mysqlDS.setUser("xxxxxx");
                // 您的数据库密码
                mysqlDS.setPassword("xxxxxx");
                // 您的数据库名
                mysqlDS.setDatabaseName("xxxxxx");

                conn = mysqlDS.getConnection();

            }catch(Exception e){
                e.printStackTrace();
            } finally {
                try {
                    if (conn != null)
                        conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    }

相关文档

设置SSL加密方式连接RDS MySQL版的方法请参见RDS MySQL设置SSL加密

适用于

  • 云原生关系型数据库PolarDB
首页 在Windows10系统的Java环境中通过SSL加密方式连接PolarDB MySQL