如何使用 mysql OpenSSL 工具生成 SSL 证书和私钥

1. 完整流程

下面的表格展示了生成 SSL 证书和私钥的整个流程:

步骤 操作
1 创建 OpenSSL 配置文件
2 生成 SSL 证书和私钥
3 配置 MySQL 服务器使用 SSL 证书和私钥
4 测试 SSL 连接

2. 具体操作

步骤1:创建 OpenSSL 配置文件

首先,我们需要创建一个 OpenSSL 配置文件,比如 openssl.cnf,并在其中指定 SSL 证书和私钥的相关信息。下面是一个简单的配置文件示例:

```markdown
# openssl.cnf

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
CN = example.com

[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com

步骤2:生成 SSL 证书和私钥

接下来,使用 OpenSSL 工具生成 SSL 证书和私钥。可以使用如下命令:

```shell
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server-key.pem -out server-cert.pem -config openssl.cnf

解释:

  • req: 使用 OpenSSL 的 req 工具
  • -x509: 创建自签名证书
  • -nodes: 不使用密码保护私钥
  • -days 365: 证书有效期
  • -newkey rsa:2048: 使用 RSA 加密算法生成 2048 位的私钥
  • -keyout server-key.pem: 生成的私钥文件
  • -out server-cert.pem: 生成的证书文件
  • -config openssl.cnf: 使用指定的配置文件

步骤3:配置 MySQL 服务器使用 SSL 证书和私钥

在 MySQL 配置文件中添加以下配置:

```shell
[mysqld]
ssl-ca=/path/to/server-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

步骤4:测试 SSL 连接

最后,重启 MySQL 服务器,并尝试使用 SSL 连接:

```shell
mysql -h localhost --ssl-ca=/path/to/server-cert.pem --ssl-cert=/path/to/server-cert.pem --ssl-key=/path/to/server-key.pem -u user -p

关系图

erDiagram
    SSL证书 ||--|| OpenSSL配置文件 : 包含
    SSL证书 ||--|| MySQL服务器 : 配置使用

甘特图

gantt
    title SSL证书生成流程
    section 生成证书
    创建OpenSSL配置文件 :done, des1, 2021-10-01, 1d
    生成SSL证书和私钥 :done, des2, 2021-10-02, 1d
    section 配置MySQL服务器
    配置SSL证书和私钥 :done, a1, 2021-10-03, 1d
    section 测试SSL连接
    测试SSL连接 :done, after a1, 1d

通过以上步骤,你可以成功生成 SSL 证书和私钥,并配置 MySQL 服务器使用 SSL 连接。祝你成功!