mysql_ssl_rsa_setup 已弃用。建议使用 MySQL 服务器在启动时自动生成缺失的 SSL 和 RSA 文件(见 自动 SSL 和 RSA 文件生成)。
该程序创建了支持使用 SSL 的证书和密钥文件,以及 RSA 密钥对文件,以便在未加密的连接中使用安全密码交换。如果这些文件缺失,mysql_ssl_rsa_setup 也可以用于创建新的 SSL 文件,以取代已过期的文件。
mysql_ssl_rsa_setup 使用 openssl 命令,因此其使用取决于机器上安装了 OpenSSL。
另一种生成 SSL 和 RSA 文件的方法是,让 MySQL 服务器在启动时自动生成它们。见 第 8.3.3.1 节,“使用 MySQL 创建 SSL 和 RSA 证书和密钥”。
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
查看 openssl 命令。
mysql_ssl_rsa_setup 尝试使用默认文件名创建 SSL 和 RSA 文件。它按照以下步骤工作:
-
mysql_ssl_rsa_setup 检查 openssl 二进制文件的位置,指定了
PATH
环境变量。如果 openssl 未找到,mysql_ssl_rsa_setup 不执行任何操作。如果 openssl 存在,mysql_ssl_rsa_setup 在 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 certificate ca-key.pem CA private key server-cert.pem Server certificate server-key.pem Server private key client-cert.pem Client certificate client-key.pem Client private key
这些文件启用了使用 SSL 的安全客户端连接;见 第 8.3.1 节,“配置 MySQL 以使用加密连接”。
-
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
插件认证的账户;见 第 8.4.1.3 节,“SHA-256 可插拔认证” 和 第 8.4.1.2 节,“Caching SHA-2 可插拔认证”。
有关 mysql_ssl_rsa_setup 创建的文件特征的信息,请见 第 8.3.3.1 节,“使用 MySQL 创建 SSL 和 RSA 证书和密钥”。
在启动时,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 可以看到它们的存在,并且不会覆盖它们。)
-
运行 mysql_ssl_rsa_setup 使用
--datadir
选项指定创建新文件的位置。 -
重新启动服务器。
mysql_ssl_rsa_setup 支持以下命令行选项,可以在命令行或在 [mysql_ssl_rsa_setup]
和 [mysqld]
组的选项文件中指定。有关 MySQL 程序使用的选项文件的信息,请参阅 第 6.2.2.2 节,“使用选项文件”。
-
--help
,?
Command-Line Format --help
显示帮助信息并退出。
-
Command-Line Format --datadir=dir_name
Type 目录名称 该目录是 mysql_ssl_rsa_setup 应该检查默认 SSL 和 RSA 文件的目录,并在其中创建文件如果它们不存在。默认是编译的数据目录。
-
Command-Line Format --suffix=str
Type 字符串 X.509 证书公共名称属性的后缀。该后缀值最多为 17 个字符。默认基于 MySQL 版本号。
-
--uid=name
,-v
Command-Line Format --uid=name
该用户名称是创建文件的所有者。该值是一个用户名,而不是数字用户 ID。在缺少该选项的情况下,mysql_ssl_rsa_setup 创建的文件由执行该程序的用户拥有该选项仅在执行该程序作为
root
用户在支持chown()
系统调用的系统上有效。 -
--verbose
,-v
Command-Line Format --verbose
详细模式。产生关于程序执行的更多输出。例如,该程序显示 openssl 命令它运行,并产生输出以指示是否跳过 SSL 或 RSA 文件创建,因为某些默认文件已经存在。
-
--version
,-V
Command-Line Format --version
显示版本信息并退出。