mysql openssl windows,win-mysql8开启ssl

2023-05-16

首先获取配置文件的路径,windows版本简明的方式就是查看mysql的服务,在启动参数中有配置文件的路径,如下:

>sc qc mysql80

[SC] QueryServiceConfig 成功

BINARY_PATH_NAME : "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80

使用生成好的证书文件,在my.ini中进行配置:

[mysqld]

ssl_ca=d:/ssl/RootCA.pem

ssl_cert=d:/ssl/Server.pem

ssl_key=d:/ssl/Server.key

参数的名字中使用中横线例如ssl-ca测试也可以识别,如上配置完成之后,重启mysql服务,登录客户端或者jdbc接口进行查看。本次使用的是SQuirreL SQL Client+JDBC驱动的方式来操作数据库。由于SQuirreL SQL Client只能配置URL的参数,所以keystore必须在SQuirreL SQL Client的启动脚本中通过-D参数的方式进行添加,例如在squirrel-sql.bat中添加如下参数:

-Djavax.net.ssl.keyStore=d:/ssl/Client.p12 -Djavax.net.ssl.keyStorePassword=Aa123456 -Djavax.net.ssl.trustStore=d:/ssl/ClientTrust.p12 -Djavax.net.ssl.trustStorePassword=Aa123456

然后在JDBC的URL中添加参数useSSL=true,例如:

jdbc:mysql://localhost:3306?serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&useSSL=true

其他的参数来自于网上,暂且作为参考。

最后,就是如何判断我们已经开启了服务端的SSL功能,并且确认本地登录使用的就是SSL链接呢?驱动服务端是否开启了SSL,可以查询ssl变量,例如:

SHOW VARIABLES LIKE '%ssl%'

Variable_name Value

--------------------------------------------------------------------------------------------------------

have_openssl YES

have_ssl YES

mysqlx_ssl_ca

mysqlx_ssl_capath

mysqlx_ssl_cert

mysqlx_ssl_cipher

mysqlx_ssl_crl

mysqlx_ssl_crlpath

mysqlx_ssl_key

ssl_ca d:/ssl/RootCA.pem

ssl_capath

ssl_cert d:/ssl/Server.pem

ssl_cipher

ssl_crl

ssl_crlpath

ssl_fips_mode OFF

ssl_key d:/ssl/Server.key

查询当前链接的状态呢,在网上找到一种方法,很有效:

SELECT CONNECTION_TYPE FROM performance_schema.threads where processlist_id = CONNECTION_ID()

CONNECTION_TYPE

------------------

SSL/TLS

相关

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql openssl windows,win-mysql8开启ssl 的相关文章

随机推荐