4.4.5 mysql_ssl_rsa_setup-创建 SSL/RSA 文件

如果缺少这些文件,此程序将创建 SSL 证书和密钥文件以及 RSA 密钥对文件,以支持使用 SSL 进行安全连接以及使用 RSA 通过未加密的连接进行安全密码交换。如果现有的 SSL 文件已过期,mysql_ssl_rsa_setup也可用于创建新的 SSL 文件。

Note

mysql_ssl_rsa_setup使用 openssl 命令,因此它的使用取决于在您的计算机上安装的 OpenSSL。

对于使用 OpenSSL 编译的 MySQL 发行版,生成 SSL 和 RSA 文件的另一种方法是让服务器自动生成它们。参见第 6.3.3.1 节“使用 MySQL 创建 SSL 和 RSA 证书和密钥”

Important

mysql_ssl_rsa_setup通过简化生成所需文件的方式来降低使用 SSL 的障碍。但是,由mysql_ssl_rsa_setup生成的证书是自签名的,并不是很安全。在获得使用mysql_ssl_rsa_setup创建的文件的经验之后,请考虑从注册的证书颁发机构获取 CA 证书。

像这样调用mysql_ssl_rsa_setup

shell> mysql_ssl_rsa_setup [options]

典型的选项是--datadir指定创建文件的位置,--verbose查看mysql_ssl_rsa_setup执行的 openssl 命令。

mysql_ssl_rsa_setup尝试使用一组默认的文件名来创建 SSL 和 RSA 文件。其工作方式如下:

  • mysql_ssl_rsa_setupPATH环境变量指定的位置检查 openssl 二进制文件。如果找不到 openssl ,则mysql_ssl_rsa_setup不执行任何操作。如果存在 openssl ,则mysql_ssl_rsa_setup将在--datadir选项指定的 MySQL 数据目录中查找默认的 SSL 和 RSA 文件,如果未提供--datadir选项,则在已编译的数据目录中查找默认 SSL 和 RSA 文件。

  • 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 启用安全的 Client 端连接。参见第 6.3.1 节“配置 MySQL 以使用加密连接”

private_key.pem      Private member of private/public key pair
public_key.pem       Public member of private/public key pair

有关mysql_ssl_rsa_setup创建的文件的 Feature 的信息,请参见第 6.3.3.1 节“使用 MySQL 创建 SSL 和 RSA 证书和密钥”

在启动时,如果未提供除--ssl(可能与ssl_cipher一起)以外的任何显式 SSL 选项,MySQL 服务器将自动使用mysql_ssl_rsa_setup创建的 SSL 文件来启用 SSL。如果您希望显式指定文件,请在启动时使用--ssl-ca--ssl-cert--ssl-key选项调用 Client 端,以分别命名ca.pemserver-cert.pemserver-key.pem文件。

如果未提供明确的 RSA 选项,则服务器还会自动使用mysql_ssl_rsa_setup创建的 RSA 文件来启用 RSA。

如果服务器启用了 SSL,则 Client 端默认使用 SSL 进行连接。要明确指定证书和密钥文件,请使用--ssl-ca--ssl-cert--ssl-key选项分别命名ca.pemclient-cert.pemclient-key.pem文件。但是,可能首先需要进行一些附加的 Client 端设置,因为mysql_ssl_rsa_setup默认在数据目录中创建这些文件。数据目录的权限通常仅允许访问运行 MySQL 服务器的系统帐户,因此 Client 端程序无法使用此处的文件。要使文件可用,请将它们复制到 Client 端可读(但不可写)的目录中:

  • 对于本地 Client 端,可以使用 MySQL 安装目录。例如,如果数据目录是安装目录的子目录,而您的当前位置是数据目录,则可以像这样复制文件:
cp ca.pem client-cert.pem client-key.pem ..
  • 对于远程 Client 端,请使用安全通道分发文件,以确保在传输过程中不会对其进行篡改。

如果用于 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][mysql_install_db][mysqld]组中指定。有关 MySQL 程序使用的选项文件的信息,请参见第 4.2.2.2 节“使用选项文件”

table4.10 mysql_ssl_rsa_setup 选项

Option NameDescription
--datadir数据目录的路径
--help显示帮助信息并退出
--suffixX.509 证书通用名称属性的后缀
--uid用于文件权限的有效用户名
--verboseVerbose mode
--version显示版本信息并退出

显示帮助消息并退出。

mysql_ssl_rsa_setup应该检查默认 SSL 和 RSA 文件的目录的路径;如果缺少这些文件,它应该在其中创建文件的目录的路径。默认值为内置数据目录。

X.509 证书中“公用名”属性的后缀。后缀值限制为 17 个字符。默认值基于 MySQL 版本号。

应该是任何已创建文件的所有者的用户名。该值是用户名,而不是数字用户 ID。在没有此选项的情况下,由mysql_ssl_rsa_setup创建的文件由执行它的用户拥有。仅当在支持chown()系统调用的系统上以root执行程序时,此选项才有效。

详细模式。产生有关程序功能的更多输出。例如,该程序显示其运行的 openssl 命令,并生成输出以指示由于某些默认文件已存在而跳过 SSL 或 RSA 文件的创建。

显示版本信息并退出。