引言
从Java连接MySQL的连接属性中获取sslMode的含义
版本
驱动版本
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
服务端版本
Database Version: 8.0.35
SSL参数含义与默认值
序号 | 值 | 默认值 | 含义 |
---|---|---|---|
1 | sslMode | PREFERRED | 默认情况下,网络连接是SSL加密的;此属性允许关闭安全连接,或者选择不同的安全级别。 |
2 | useSSL | true | 与服务器通信时使用SSL(true/false) |
3 | requireSSL | false | 如果useSSL=true,则要求服务器支持SSL连接 |
4 | verifyServerCertificate | false | |
/ | / | / | / |
1 | trustCertificateKeyStoreType | JKS | 受信任的根证书的密钥存储类型。 |
2 | trustCertificateKeyStoreUrl | / | 受信任的根证书密钥存储的URL。 [CR]如果未指定,属性“fallbackToSystemTrustStore”将确定是否使用系统范围的信任存储。 |
3 | trustCertificateKeyStorePassword | / | 受信任的根证书密钥存储的密码。 |
4 | fallbackToSystemKeyStore | true | 没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。 |
/ | / | / | / |
1 | clientCertificateKeyStoreType | JKS | 客户端证书的密钥存储类型。JVM支持的标准密钥存储类型是“JKS\”和“PKCS12\” |
2 | clientCertificateKeyStoreUrl | / | 客户端证书KeyStore的URL。 如果未指定,属性“fallbackToSystemKeyStore”将确定是否使用系统范围的密钥存储。 |
3 | clientCertificateKeyStorePassword | / | 客户端证书密钥存储的密码。 |
4 | fallbackToSystemKeyStore | true | 没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。" |
对应关系梳理
sslMode | 含义 | useSSL | requireSSL | verifyServerCertificate |
---|---|---|---|---|
DISABLED | 禁用:建立未加密的连接 | false | ||
PREFERRED | 首选:(默认)如果服务器启用了加密连接,则建立加密连接,否则返回到未加密连接 | true | false | false |
REQUIRED | 必须:如果服务器启用了安全连接,则建立安全连接,否则将失败 | true | true | false |
VERIFY_CA | 验证授权:类似于“REQUIRED\”,但还要根据配置的证书颁发机构(CA)证书验证服务器TLS证书; |