Mysql ssl rsa setup - 创建SSL/RSA文件
注意
从MySQL 8.0.34开始,mysql_ssl_rsa_setup已被弃用。相反,可以考虑在启动时让MySQL服务器自动生成缺失的SSL和RSA文件(参见自动SSL和RSA文件生成)。
此程序用于创建支持使用SSL进行安全连接以及使用RSA在未加密连接上进行安全密码交换所需的SSL证书和密钥文件,如果这些文件丢失的话。mysql_ssl_rsa_setup还可以用于在现有文件过期时创建新的SSL文件。
注意
mysql_ssl_rsa_setup使用openssl命令,因此其使用取决于您的机器上是否安装了OpenSSL。
另一种生成SSL和RSA文件的方法是,对于使用OpenSSL编译的MySQL发行版,让服务器自动生成它们。
重要
mysql_ssl_rsa_setup有助于降低使用SSL的难度,因为它使生成所需文件变得更加容易。然而,由mysql_ssl_rsa_setup生成的证书是自签名的,并不非常安全。在使用由mysql_ssl_rsa_setup创建的文件获得经验后,可以考虑从注册的证书颁发机构获取CA证书。
像这样调用mysql_ssl_rsa_setup:
mysql_ssl_rsa_setup [options]
典型的选项是–datadir以指定创建文件的位置,以及–verbose以查看mysql_ssl_rsa_setup执行的openssl命令。
mysql_ssl_rsa_setup尝试使用默认的文件名集创建SSL和RSA文件。它按以下方式工作:
mysql_ssl_rsa_setup检查由PATH环境变量指定的位置上的openssl二进制文件。如果找不到openssl,mysql_ssl_rsa_setup不执行任何操作。如果找到了openssl,mysql_ssl_rsa_setup会在由–datadir选项指定的MySQL数据目录中查找默认的SSL和RSA文件,或者如果没有给出–datadir选项,则查找内置的数据目录。
mysql_ssl_rsa_setup检查数据目录中的SSL文件,具有以下名称:
ca.pem server-cert.pem server-key.pem
如果其中任何一个文件存在,mysql_ssl_rsa_setup不会创建SSL文件。否则,它会调用openssl来创建它们,以及一些额外的文件:
ca.pem Self-signed CA证书 ca-key.pem CA私钥 server-cert.pem Server证书 server-key.pem Server私钥 client-cert.pem Client证书 client-key.pem Client私钥
这些文件使使用SSL的安全客户端连接成为可能。
mysql_ssl_rsa_setup检查数据目录中的RSA文件,具有以下名称:
private_key.pem Private member of private/public key pair public_key.pem Public member of private/public key pair
如果其中任何一个文件存在,mysql_ssl_rsa_setup不会创建RSA文件。否则,它会调用openssl来创建它们。这些文件使使用RSA在未加密连接上进行安全密码交换成为可能,以便使用sha256_password或caching_sha2_password插件进行身份验证的帐户可以使用。
在启动时,MySQL服务器会自动使用由mysql_ssl_rsa_setup创建的SSL文件启用SSL(除非除了–ssl之外还给出了其他显式的SSL选项,可能是与ssl_cipher一起使用的)。如果您更喜欢显式指定这些文件,可以在启动时使用–ssl-ca、–ssl-cert和–ssl-key选项分别命名ca.pem、server-cert.pem和server-key.pem文件。 服务器还会自动使用由mysql_ssl_rsa_setup创建的RSA文件启用RSA(除非给出了其他显式的RSA选项)。
如果服务器已启用SSL,客户端默认情况下在连接时使用SSL。要显式指定证书和密钥文件,请使用–ssl-ca、–ssl-cert和–ssl-key选项分别命名ca.pem、client-cert.pem和client-key.pem文件。但是,由于mysql_ssl_rsa_setup默认在这些文件中创建它们,因此在数据目录中,可能需要先进行一些额外的客户端设置。数据目录的权限通常只允许运行MySQL服务器的系统帐户访问,因此客户端程序无法使用位于该目录中的文件。要使这些文件可用,可以将它们复制到一个客户端可以读取(但不可写)的目录中: * 对于本地客户端,MySQL安装目录可以用作目录。例如,如果数据目录是安装目录的子目录,并且当前位置是数据目录,则可以这样复制文件:
cp ca.pem client-cert.pem client-key.pem ..
- 对于远程客户端,通过安全通道分发文件以确保在传输过程中不被篡改。
如果用于MySQL安装的SSL文件已过期,可以使用mysql_ssl_rsa_setup创建新文件:
- 停止服务器。
- 重命名或删除现有的SSL文件。您可能希望首先备份它们。(RSA文件不会过期,因此不需要删除它们。mysql_ssl_rsa_setup可以看到它们存在,不会覆盖它们。)
- 使用带有–datadir选项运行mysql_ssl_rsa_setup以指定创建新文件的位置。
- 重新启动服务器。
mysql_ssl_rsa_setup支持以下命令行选项,可以在命令行或选项文件中的[mysql_ssl_rsa_setup]和[mysqld]组中指定。
选项名称 | 描述 | 已弃用 |
---|---|---|
–datadir | 数据目录的路径 | 8.0.34 |
–help | 显示帮助信息并退出 | 8.0.34 |
–suffix | X.509证书公用名属性的后缀 | 8.0.34 |
–uid | 用于文件权限的有效用户的名称 | 8.0.34 |
–verbose | 详细模式 | 8.0.34 |
–version | 显示版本信息并退出 | 8.0.34 |