首页 > 编程知识 正文

mysql jdbc连接配置,mysql数据库

时间:2023-05-06 10:12:09 阅读:45405 作者:108

MySQL配置SSL,修改JDBC连接配置1,使用OpenSSL创建SSL证书和私钥1.1 SSL配置2,检查数据库是否支持SSL2.1配置MySQL配置文件,打开SSL验证2.2,然后打开MySQL ssql配置文件

Mysql中的SSL连接Mysql使用SSL连接Mysql启用SSL,JDBC将JDBC配置为连接到Mysql。 使用SSL连接到MySQL1,使用OpenSSL创建SSL证书和私钥,基于自己的操作系统为win(xx ) OpenSSL安装创建新目录,并存储生成的证书和私钥/CA私钥运行此命令时,需要填写一些问题。 OpenSSL req-sha1-new-x509-nodes-days 3650-key./cert/ca-key.PEM cert/ca-cert.PEM/PEM /服务器端RSA私钥和数字请自由填写。 但需要注意的是,A challenge password这个项目是空的OpenSSL req-sha1-new key RSA :2048-days 3650-nodes-keyout cert/server-key.PPP 服务器将生成的私钥转换为RSA私钥文件格式OpenSSL RSA-in cert/server-key.PEM-out cert/server-key.PEM//使用原始生成的CA证书创建服务器端数字证书ood 生成的server-req.PEM-days 3650-cacert/ca-cert.PEM-cakeycert/ca-key.PEM-set _ serial 01 cert/server-cert .客户端的RSA私钥和数字证书OpenSSL req-sha1-new key RSA :2048-days 3650-nodes-keyout cert/client-key.PEM CEM 创建client-req.PEM将生成的私钥以RSA私钥文件格式OpenSSL RSA-in cert/client-key.PEM-out cert/client-key.PEM///为客户端创建数字证书OpenSSLx509-sha1-req-inceer的client-req.PEM-days 3650-cacert/ca-cert.PEM-cakeycert/ca-days

上一步生成了:个文件

用于生成服务器/客户端数字证书的ca-cert.pem: CA证书。 用于生成服务器/客户端数字证书的ca-key.pem: CA私钥。 server-key.pem:服务器端的RSA私钥server-req.peq。 用于生成服务器端的数字证书。 服务器- cert.PEM :服务器端的数字证书。 用于为client-key.pem:客户端的RSA私钥client-req.pem:客户端生成证书请求文件客户端的数字证书. client-cert.pem:客户端的数字证书检查数据库是否支持SSL首先在MySQL中运行以下命令,以询问MySQL是否支持SSL:

mysqlshowvariableslike ' have _ SSL '; ----------------| variable _ name|---------------------------------------------------------------

2.1设置MySQL配置式并打开SSL认证vi my.cnf

在mysqld下添加构成以下配置[ mysqld ] require _ secure _ transport=on 2.2 MySQL的SSL : 然后,必须分别配置服务器端和客户端。

服务器端配置

服务器端必须使用三个文件: CA证书、服务器端RSA私钥和服务器端数字证书。 [mysqld] SSL-ca=/etc/MySQL/ca-cert.PEM SSL-ca必须添加到[ mysqld ]配置域中

er-cert.pemssl-key=/etc/mysql/server-key.pem

接着我们还可以更改 疯狂的蓝天d-address, 使 MySQL 服务可以接收来自所有 ip 地址的客户端, 即:

疯狂的蓝天d-address = *

当配置好后, 我们需要重启 MySQL 服务
最后一步, 我们添加一个需要使用 SSL 才可以登录的帐号, 来验证一下我们所配置的 SSL 是否生效:

GRANT ALL PRIVILEGES ON *.* TO 'ssl_test'@'%' IDENTIFIED BY 'ssl_test' REQUIRE SSL;FLUSH PRIVILEGES; 查看用户是否使用ssl SELECT ssl_type From mysql.user Where user="ssler"

ssl_type为空字符串,表示该用户不强制要求使用ssl连接。

配置用户必须使用ssl连接 ALTER USER 'ssler'@'%' REQUIRE SSL;FLUSH PRIVILEGES

此时再执行SELECT ssl_type From mysql.user Where user="ssler"

ANY表示必须使用ssl连接。

当配置好后, 使用 root 登录 MySQL

mysql --ssl-ca="D:/Program Files/OpenSSL-Win64/疯狂的蓝天/cert/ca-cert.pem" --ssl-cert="D:/Program Files/OpenSSL-Win64/疯狂的蓝天/cert/client-cert.pem" --ssl-key="D:/Program Files/OpenSSL-Win64/疯狂的蓝天/cert/client-key.pem" -u coisini -p

当连接成功后, 我们执行 show variables like ‘%ssl%’ 语句会有如下输出:

mysql> show variables like '%ssl%';+---------------+-----------------+| Variable_name | Value |+---------------+-----------------+| have_openssl | YES || have_ssl | YES || ssl_ca | ca.pem || ssl_capath | || ssl_cert | server-cert.pem || ssl_cipher | || ssl_crl | || ssl_crlpath | || ssl_key | server-key.pem |+---------------+-----------------+9 rows in set (0.01 sec) 三、JAVA-JDBC配置

使用jdk自带的keytool导入mysql的客户端证书到密钥仓库,并生成密钥文件。

根据上文查到的ca.pem,将其复制到目标主机上,然后执行下述指令

使用该命令生成java使用SSL连接所需的文件: keytool -importcert -alias MySQLCACert -file "D:Program FilesOpenSSL-Win64疯狂的蓝天certca-cert.pem" -keystore truststore -storepass 密码 通过指令验证证书是否导入 $ keytool -list -keystore mysql.ks输入密钥库口令:密钥库类型: jks密钥库提供方: SUN您的密钥库包含 1 个条目mysql, 2020-6-9, trustedCertEntry,证书指纹 (SHA1): 6B:EE:FE:B4:74:89:A3:88:6C:49:22:44:6D:FB:88:DE:18:6A:7A:F6 将生成的文件配置系统环境变量 名:JAVA_OPTS 值:-Djavax.net.ssl.trustStore="上一步中生成文件的本地路径" -Djavax.net.ssl.trustStorePassword="密码" JDBC配置连接 ##jdbc.properties:yxaq.dz=jdbc:mysql://127.0.0.1:3306/yxaqgl?verifyServerCertificate=true&useSSL=true&requireSSL=true

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。