美文网首页
【MySQL】MySQL 如何启用SSL

【MySQL】MySQL 如何启用SSL

作者: Bogon | 来源:发表于2023-07-29 23:55 被阅读0次

    MySQL 如何启动SSL?

    要启用 MySQL 的 SSL 功能,需要进行以下步骤:

    1. 生成 SSL 证书和私钥

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

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/mysql-server.key -out /etc/mysql/mysql-server.crt
    

    其中,/etc/mysql/mysql-server.key 是私钥文件路径,/etc/mysql/mysql-server.crt 是证书文件路径。

    1. 配置 MySQL 服务器

    在 MySQL 服务器配置文件(通常是 /etc/mysql/my.cnf)中添加以下行:

    [mysqld]
    ssl-ca=/etc/mysql/mysql-server.crt
    ssl-cert=/etc/mysql/mysql-server.crt
    ssl-key=/etc/mysql/mysql-server.key
    

    这将告诉 MySQL 服务器使用上面生成的证书和私钥。

    1. 重启 MySQL 服务器

    重启 MySQL 服务器以使更改生效:

    sudo systemctl restart mysql
    
    1. 测试 SSL 连接

    使用以下命令测试 SSL 连接:

    mysql -u root -p --ssl-ca=/etc/mysql/mysql-server.crt --ssl-cert=/etc/mysql/mysql-server.crt --ssl-key=/etc/mysql/mysql-server.key
    

    这将使用 SSL 连接到 MySQL 服务器。如果连接成功,则表示 SSL 已经启用。

    MySQL 启用SSL,对应的客户端java程序的配置文件中的jdbc字符串如何写?

    启用SSL的MySQL连接字符串应该包含以下属性:

    • useSSL=true:启用SSL连接
    • requireSSL=true:要求使用SSL连接
    • verifyServerCertificate=true:验证服务器证书
    • trustCertificate=<path_to_trusted_cert>:指定信任的证书路径

    因此,一个典型的MySQL连接字符串应该如下所示:

    jdbc:mysql://<hostname>:<port>/<database>?useSSL=true&requireSSL=true&verifyServerCertificate=true&trustCertificate=<path_to_trusted_cert>
    

    其中,<hostname> 是 MySQL 服务器的主机名,<port> 是 MySQL 服务器的端口号,<database> 是要连接的数据库名称,<path_to_trusted_cert> 是信任的证书路径。

    verifyServerCertificate=true 是否需要做双向认证?

    verifyServerCertificate=true 选项只是告诉 MySQL 客户端在建立 SSL 连接时验证服务器证书的有效性。它并不需要进行双向认证,也就是说,MySQL 客户端不需要提供自己的证书进行验证。

    如果需要进行双向认证,需要在 MySQL 服务器端启用 SSL,并配置客户端证书验证。此时,需要在 MySQL 连接字符串中添加 clientCertificateKeyStoreUrlclientCertificateKeyStorePasswordtrustCertificateKeyStoreUrltrustCertificateKeyStorePassword 等选项来指定客户端证书和信任证书的路径和密码。例如:

    jdbc:mysql://<hostname>:<port>/<database>?useSSL=true&clientCertificateKeyStoreUrl=<path_to_client_keystore>&clientCertificateKeyStorePassword=<client_keystore_password>&trustCertificateKeyStoreUrl=<path_to_truststore>&trustCertificateKeyStorePassword=<truststore_password>
    

    其中,<path_to_client_keystore> 是客户端证书的路径,<client_keystore_password> 是客户端证书的密码,<path_to_truststore> 是信任证书的路径,<truststore_password> 是信任证书的密码。同时,MySQL 服务器端也需要配置对应的证书和密钥。

    相关文章

      网友评论

          本文标题:【MySQL】MySQL 如何启用SSL

          本文链接:https://www.haomeiwen.com/subject/pzahjdtx.html