Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  mysql_ssl_rsa_setup — Create SSL/RSA Files

6.4.3 mysql_ssl_rsa_setup — 创建 SSL/RSA 文件

Note

mysql_ssl_rsa_setup 已弃用。建议使用 MySQL 服务器在启动时自动生成缺失的 SSL 和 RSA 文件(见 自动 SSL 和 RSA 文件生成)。

该程序创建了支持使用 SSL 的证书和密钥文件,以及 RSA 密钥对文件,以便在未加密的连接中使用安全密码交换。如果这些文件缺失,mysql_ssl_rsa_setup 也可以用于创建新的 SSL 文件,以取代已过期的文件。

Note

mysql_ssl_rsa_setup 使用 openssl 命令,因此其使用取决于机器上安装了 OpenSSL。

另一种生成 SSL 和 RSA 文件的方法是,让 MySQL 服务器在启动时自动生成它们。见 第 8.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

mysql_ssl_rsa_setup [options]

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

mysql_ssl_rsa_setup 尝试使用默认文件名创建 SSL 和 RSA 文件。它按照以下步骤工作:

  1. mysql_ssl_rsa_setup 检查 openssl 二进制文件的位置,指定了 PATH 环境变量。如果 openssl 未找到,mysql_ssl_rsa_setup 不执行任何操作。如果 openssl 存在,mysql_ssl_rsa_setup 在 MySQL 数据目录中查找默认的 SSL 和 RSA 文件,或者如果未指定 --datadir 选项,则使用编译时的数据目录。

  2. mysql_ssl_rsa_setup 检查数据目录中的 SSL 文件,名称如下:

    ca.pem
    server-cert.pem
    server-key.pem
  3. 如果这些文件存在,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 以使用加密连接”

  4. 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
  5. 如果这些文件中的任何一个存在,mysql_ssl_rsa_setup 不会创建 RSA 文件。否则,它将调用 openssl 创建它们。这些文件启用了使用 RSA 进行安全密码交换的加密连接,用于通过 sha256_passwordcaching_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.pemserver-cert.pemserver-key.pem 文件,分别。

服务器还自动使用 mysql_ssl_rsa_setup 创建的 RSA 文件启用 RSA,如果没有明确的 RSA 选项给出。

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

  • 对于本地客户端,可以使用 MySQL 安装目录。例如,如果数据目录是安装目录的子目录,并且当前位置是数据目录,可以像这样复制文件:

    cp ca.pem client-cert.pem client-key.pem ..
  • 对于远程客户端,请使用安全通道分发文件,以确保它们在传输过程中不被篡改。

如果 MySQL 安装的 SSL 文件已过期,可以使用 mysql_ssl_rsa_setup 创建新的文件:

  1. 停止服务器。

  2. 重命名或删除现有的 SSL 文件。您可能想首先备份它们。(RSA 文件不会过期,因此您不需要删除它们。mysql_ssl_rsa_setup 可以看到它们的存在,并且不会覆盖它们。)

  3. 运行 mysql_ssl_rsa_setup 使用 --datadir 选项指定创建新文件的位置。

  4. 重新启动服务器。

mysql_ssl_rsa_setup 支持以下命令行选项,可以在命令行或在 [mysql_ssl_rsa_setup][mysqld] 组的选项文件中指定。有关 MySQL 程序使用的选项文件的信息,请参阅 第 6.2.2.2 节,“使用选项文件”

表 6.10 mysql_ssl_rsa_setup 选项

Option Name Description
--datadir 数据目录路径
--help 显示帮助信息并退出
--suffix X.509 证书公共名称属性的后缀
--uid 用于文件权限的有效用户名称
--verbose 详细模式
--version 显示版本信息并退出

  • --help, ?

    Command-Line Format --help

    显示帮助信息并退出。

  • --datadir=dir_name

    Command-Line Format --datadir=dir_name
    Type 目录名称

    该目录是 mysql_ssl_rsa_setup 应该检查默认 SSL 和 RSA 文件的目录,并在其中创建文件如果它们不存在。默认是编译的数据目录。

  • --suffix=str

    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

    显示版本信息并退出。