mysql open ssl

Referencia de instalación de mysql: https://blog.csdn.net/sumengnan/article/details/108736935

 

1. ¿Cómo abrir mysql ssl?

1. Primero verifique si mysql ha abierto ssl

sí ya está abierto, si está DESACTIVADO, significa que no.

2. Detenga mysql

servicio mysqld stop o ps + kill mode

3. Ejecute la instalación de mysql_ssl_rsa_setup

Hay un archivo mysql_ssl_rsa_setup en el directorio bin de mysql, ejecútelo para comenzar a instalar ssl

Una vez completada la instalación, se generarán algunas claves privadas y públicas en el directorio de datos de mysql

[root mysql_data]# ll *.pem
-rw------- 1 mysql mysql 1675 Jun 12 17:22 ca-key.pem         #CA私钥
-rw-r--r-- 1 mysql mysql 1074 Jun 12 17:22 ca.pem             #自签的CA证书,客户端连接也需要提供
-rw-r--r-- 1 mysql mysql 1078 Jun 12 17:22 client-cert.pem    #客户端连接服务器端需要提供的证书文件
-rw------- 1 mysql mysql 1675 Jun 12 17:22 client-key.pem     #客户端连接服务器端需要提供的私钥文件
-rw------- 1 mysql mysql 1675 Jun 12 17:22 private_key.pem    #私钥/公钥对的私有成员
-rw-r--r-- 1 mysql mysql 451 Jun 12 17:22  public_key.pem     #私钥/公钥对的共有成员
-rw-r--r-- 1 mysql mysql 1078 Jun 12 17:22 server-cert.pem    #服务器端证书文件
-rw------- 1 mysql mysql 1675 Jun 12 17:22 server-key.pem     #服务器端私钥文件

Preste atención a los permisos de estas claves , si es necesario, ejecute: chown -R mysql.mysql * .pem

4. Agregue parámetros ssl al archivo de configuración my.cnf

[mysqld]
ssl-ca=/usr/local/mysql/data/ca.pem
ssl-cert=/usr/local/mysql/data/client-cert.pem
ssl-key=/usr/local/mysql/data/client-key.pem

[mysql]
ssl-ca=/usr/local/mysql/data/ca.pem
ssl-cert=/usr/local/mysql/data/client-cert.pem
ssl-key=/usr/local/mysql/data/client-key.pem

5. Después de iniciar mysql, inicie sesión en mysql para verificar el estado de ssl

 

2. ¿Cómo comprobar si la conexión mysql actual utiliza ssl?

Utilice el comando \ so status, como se muestra en la figura:

Si no se usa ssl, se muestra como No está en uso

Si no desea usar ssl, agregue la opción --ssl = 0 o --ssl-mode = DISABLED

mysql -uroot -proot --ssl=0或
mysql -uroot -proot --ssl-mode=DISABLED

En general, SSL no está activada de forma predeterminada en el entorno de localhost. Si desea forzar el uso de SSL, agregue el --ssl-mode = REQUERIDO opción

 

Tres, cómo configurar un usuario para que use ssl obligatorio

//新建用户
mysql> grant select on *.* to 'dba'@'%' identified by 'xxx' REQUIRE SSL; 
//修改用户
mysql> ALTER USER 'dba'@'%' REQUIRE SSL; 
flush privileges;

 

Cuatro, cómo usar ssl para conectarse a mysql en java

mysql usa ssl para conectarse al documento oficial: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html

El primer método (almacén de claves personalizado):

1. Si configura directamente la propiedad de conexión verifyServerCertificate = true & useSSL = true & requireSSL = true, el proyecto de inicio informará un error y falta el certificado.

2、所以我们需要把服务器端的data/ca.pem文件拿到客户端,再执行命令,添加到fideicomiso密钥库

keytool -importcert -alias MySQLCACert -file ca.pem -keystore truststore -storepass mypassword

执行完毕会在当前文件夹生成一个archivo de almacén de confianza

3. Luego configure la ruta del archivo a las propiedades de conexión & trustCertificateKeyStorePassword = mypassword & trustCertificateKeyStoreUrl = file: /// Users / sumengnan / fsdownload / truststore

O agregue directamente los parámetros de inicio de Java -Djavax.net.ssl.trustStore = / Users / sumengnan / fsdownload / truststore -Djavax.net.ssl.trustStorePassword = mypassword

4. Si mysql está configurado con autenticación bidireccional, consulte https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-using-ssl.html

Si no desea utilizar la clave de cliente y el archivo de certificado generado por el servidor, también puede crear manualmente la clave con openssl: https://dev.mysql.com/doc/refman/5.7/en/creating-ssl -rsa-files.html

La desventaja de este método es que Java abandonará el almacén de claves predeterminado de cacerts original. Si utiliza otros certificados, no hay ningún certificado en el almacén de claves del almacén de confianza y se informará de un error.

 

El segundo método (agregar al almacén de claves predeterminado de cacerts):

Atributo de aumento de conexión de base de datos verifyServerCertificate = true & useSSL = true & requireSSL = true

提示:默认Ubicación del almacén de claves:$JAVA_HOME/jre/lib/security/cacerts

keytool -importcert -alias MySQLCACert -file /Users/sumengnan/fsdownload/ca.pem -keystore cacerts (un comando para obtenerlo, incluso la contraseña y la configuración de la conexión no son necesarias)

La contraseña predeterminada del almacén de claves es: "changeit"

 

Supongo que te gusta

Origin blog.csdn.net/sumengnan/article/details/114086217
Recomendado
Clasificación