mysql - trustCertificateKeyStoreUrl 与 clientCertificateKeyStoreUrl

标签 mysql ssl mysql-connector

MySQL Connector/JtrustCertificateKeyStoreUrlclientCertificateKeyStoreUrl 有什么区别? ?我应该什么时候提供其中之一?

我有一个使用 SLLAWS RDS 连接的客户端应用程序,我应该使用其中的哪一个?

最佳答案

trustCertificateKeyStoreUrl 用于服务器身份验证,clientCertificateKeyStoreUrl 用于客户端身份验证。在 SSL 协商期间,服务器出示其证书,其中包含服务器的公钥和由第三方证书颁发机构 (CA) 数字签名的校验和。还有另一个连接属性 verifyServerCertificate 用于配置客户端是否应该验证服务器证书。如果您想在 SSL 协商期间为您的应用程序验证服务器证书,那么您应该将 verifyServerCertificate 设置为 true 并提供一个信任库路径,其中包含客户端到 trustCertificateKeyStoreUrl 的所有受信任的 CA。如果服务器提供的证书由客户端的可信 CA 进行数字签名,则验证将成功,否则将失败。

clientCertificateKeyStoreUrl 用于客户端身份验证。如果在服务器端启用了客户端身份验证(您可以引用https://dev.mysql.com/doc/refman/8.0/en/create-user.html#create-user-tls文章了解如何启用客户端身份验证),那么在SSL协商期间,服务器将请求客户端的证书。如果客户端证书由服务器信任的 CA 进行数字签名,则身份验证将成功。

简而言之,当客户端想要验证服务器证书时,应该提供 trustCertificateKeyStoreUrl ,当服务器上启用了客户端身份验证并且服务器想要验证证书是否由受信任的 CA 签名时,应该提供 clientCertificateKeyStoreUrl。

关于mysql - trustCertificateKeyStoreUrl 与 clientCertificateKeyStoreUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277046/

相关文章:

java - 找不到适合 jdbc :mysql netbeans, *.jar 的驱动程序包含在库中

mysql - MySQL Connector/J 读取 ~/.my.cnf 吗?

sql - InnoDB 排序真的那么慢吗?

javascript - 手动验证 SSL 自签名证书签名 - javascript

tomcat - 使用 key 工具制作 CSR,如何为 tomcat ssl 制作证书?

eclipse - Jetty-ssl.xml 密码隐藏

c# - MySQL Connection for Universal App 的哪个程序集

c++ - mysql_query 无法正确保存数据

mysql - 选择 mysql 数据库列的子集 - 日期

php - Require_once 在页面加载和提交时触发?