连接RDS数据库,RDS开启SSL

Blade 未结 1 726
3381093372
3381093372 2021-09-16 18:31
悬赏:5

一、该问题的重现步骤是什么?

1. 目前数据库连接的是阿里云的RDS,现在RDS中开启了SSL,并提供了如下3个文件,

        ApsaraDB-CA-Chain.pem

        ApsaraDB-CA-Chain.jks

        ApsaraDB-CA-Chain.p7b

2. 请问在代码中需要如何配置

3.


二、你期待的结果是什么?实际看到的又是什么?

可以连接RDS

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex联合版,2.7.0.RELEASE, centos7.5


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •  3381093372
    3381093372 (楼主)
    2021-09-18 11:13

    自己结贴

    java配置方式

    trustCertificateKeyStoreUrl 用于服务器身份验证,而 clientCertificateKeyStoreUrl 用于客户端身份验证.

    当客户端要对服务器证书进行身份验证时应提供trustCertificateKeyStoreUrl,而在服务器上启用了客户端身份验证并且服务器要认证证书是否由受信任的CA签名时应提供clientCertificateKeyStoreUrl

    介绍几个在连接时会用到的重要的参数:

    参数

    说明

    sslMode

    SSL的连接模式

    useSSL

    是否建立SSL连接

    verifyServerCertificate

    是否需要检验mysql服务器的证书

    requireSSL

    如果mysql服务器不支持SSL连接就会失败

    clientCertificateKeyStoreUrl

    keystore文件

    clientCertificateKeyStorePassword

    keystore密码

    trustCertificateKeyStoreUrl

    truststore文件

    trustCertificateKeyStorePassword

    truststore密码

    其中,sslMode是8.0.13后出现的,可以替代useSSL,verifyServerCertificate,requireSSL这三个参数,它一共有五个值,对应的情况如下:

    sslMode

    useSSL

    requireSSL

    verifyServerCertificate

    说明

    disabled

    false

    false

    false

    不使用SSL连接

    preferred

    true

    false

    false

    先使用SSL连接,失败的话改成普通连接

    required

    true

    true

    false

    先使用SSL连接,失败的话报错

    verify_ca

    true

    true

    true

    使用SSL连接,并且需要验证服务端的身份(就是客户端这边需要配置CA证书)

    verify_identity

    true

    true

    true

    使用SSL连接,并且需要验证服务端的身份和域名(就是客户端这边需要配置CA证书)

    trustCertificateKeyStoreUrl=file:/home/admin/ApsaraDB-CA-Chain.jks
    trustCertificateKeyStorePassword=apsaradb
    url: jdbc:mysql://localhost:3306/shengting_aco?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&useSSL=true&verifyServerCertificate=true&requireSSL=true&trustCertificateKeyStoreUrl=file:/home/admin/ApsaraDB-CA-Chain.jks&trustCertificateKeyStorePassword=apsaradb
    username: root
    password: 123456


    0 讨论(0)
提交回复