一、该问题的重现步骤是什么?
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
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
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
扫一扫访问 Blade技术社区 移动端