MYSQL远程连接需要SSL

MYSQL远程连接需要SSL,mysql,ssl,remote-access,Mysql,Ssl,Remote Access,我试图为自己清除一些涉及到MYSQL的远程SSL连接的信息。特别是,一旦我设置了MYSQL以启用SSL,并且有一个需要SSL的远程用户 这就是我与需要SSL的用户远程连接(命令行)到MYSQL的方式: mysql-uMyUserName-p-h192.168.5.5--sslca/path/to/ca.pem 我的问题是:为什么我必须作为客户提供ca.pem文件? 以下是我在服务器上安装mysql并设置远程访问(Ubuntu)的步骤: 为MYSQL启用SSL的步骤 1) 获取我的证书颁发

我试图为自己清除一些涉及到MYSQL的远程SSL连接的信息。特别是,一旦我设置了MYSQL以启用SSL,并且有一个需要SSL的远程用户

这就是我与需要SSL的用户远程连接(命令行)到MYSQL的方式:

mysql-uMyUserName-p-h192.168.5.5--sslca/path/to/ca.pem


我的问题是:为什么我必须作为客户提供ca.pem文件?


以下是我在服务器上安装mysql并设置远程访问(Ubuntu)的步骤:

为MYSQL启用SSL的步骤 1) 获取我的证书颁发机构证书、数据库证书、数据库密钥

  • ca.pem(证书颁发机构证书)
  • dbcert.pem(数据库证书)
  • dbkey.pem(数据库密钥)
2) 在[mysqld]下的/etc/mysql/my.cnf中添加以下行

ssl ca=/path/to/ca.pem
ssl证书=/path/to/dbcert.pem
ssl密钥=/path/to/dbkey.pem

3) 重新启动mysql并通过登录并键入以下内容确认启用了ssl:

显示像“%ssl%”这样的变量



配置需要SSL的远程连接 1) 注释掉/etc/mysql/my.cnf中的以下行

#绑定地址
#跳过网络

2) 登录mysql并授予用户对每个数据库的访问权限(在本例中)

授予在上的所有特权。要使用“密码”标识的“用户名”@“%”,需要SSL


此时,我有MYSQL设置来启用SSL&&我有一个远程用户需要SSL登录。我可以登录远程命令行,但需要指定--ssl-ca

为什么我必须从客户端提供ssl ca?有没有办法做到这一点,这样我就不必这么做?

我真的很想在这里了解一些情况


提前感谢。

与典型的web浏览器不同,像mysql这样的命令行工具没有内置的证书颁发机构列表。浏览器附带了一个内置的证书颁发机构列表,您可以隐式信任它们(无论您是否知道)

当您使用
mysql
登录到支持加密的mysql服务器时,该服务器将向您提供证书的公共部分。要完成安全握手,客户端需要验证服务器证书是否由受信任的证书颁发机构签名。否则,它将不得不说“嘿,这看起来像一个格式良好的证书,但我从来没有听说过ca签署它。”

对于Hibernate/JDBC/TLS,搜索引擎的一些工作提供了一些有用的建议。这一切都是关于在配置中设置正确的属性


这对我来说是100%合理的。我将把这个标记为可接受的答案。这导致了我接下来的问题,即使用hibernate协商来自Java的远程连接。我不确定您是否可以在这里帮助我,或者我是否应该重新发布它,但我正在尝试通过Java进行远程连接(需要SSL)。但是,我无法找到如何为hibernate配置提供证书颁发机构。。。