树莓派5 raspberry pi 5 MariaDB ssl证书配置连接

  • 服务器: Localhost via UNIX socket
  • 服务器类型: MariaDB
  • 服务器连接: SSL 未被使用 文档
  • 服务器版本: 10.11.14-MariaDB-0+deb12u2 – Debian 12
  • 协议版本: 10
  • 用户: root@localhost
  • 服务器字符集: UTF-8 Unicode (utf8mb4)

一、MariaDB 数据库配置

1、sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]
# SSL 配置
ssl = ON

ssl-ca = /etc/mysql/certs/ca-cert.pem
ssl-cert = /etc/mysql/certs/server-cert.pem
ssl-key = /etc/mysql/certs/server-key.pem
require-secure-transport = on

#tls_version = TLSv1.3
# 配置兼容性更好的加密套件
ssl_cipher = TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384
# 允许 TLS 1.2 和 1.3(增加兼容性)
tls_version = TLSv1.2,TLSv1.3

2、
sudo systemctl restart mariadb

二、数据库,用户名权限配置

1、

stevenroc@stevenroc:~ $ mysql -u root -p -e "SHOW VARIABLES LIKE '%ssl%';"
Enter password: 
+---------------------+-----------------------------------------------------------------------------------+
| Variable_name       | Value                                                                             |
+---------------------+-----------------------------------------------------------------------------------+
| have_openssl        | YES                                                                               |
| have_ssl            | YES                                                                               |
| ssl_ca              | /etc/mysql/certs/ca-cert.pem                                                      |
| ssl_capath          |                                                                                   |
| ssl_cert            | /etc/mysql/certs/server-cert.pem                                                  |
| ssl_cipher          | TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384 |
| ssl_crl             |                                                                                   |
| ssl_crlpath         |                                                                                   |
| ssl_key             | /etc/mysql/certs/server-key.pem                                                   |
| version_ssl_library | OpenSSL 3.0.20 7 Apr 2026                                                         |
+---------------------+-----------------------------------------------------------------------------------+

 

2、

mysql -u root -p

MariaDB [(none)]> SHOW VARIABLES LIKE 'ssl_cipher';
+---------------+-----------------------------------------------------------------------------------+
| Variable_name | Value                                                                             |
+---------------+-----------------------------------------------------------------------------------+
| ssl_cipher    | TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384 |
+---------------+-----------------------------------------------------------------------------------+
1 row in set (0.001 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'tls_version';
+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| tls_version   | TLSv1.2,TLSv1.3 |
+---------------+-----------------+
1 row in set (0.001 sec)

MariaDB [(none)]> SELECT User, Host FROM mysql.user WHERE User = 'steven_roc_ssl';
+----------------+--------------+
| User           | Host         |
+----------------+--------------+
| steven_roc_ssl | 192.168.10.% |
| steven_roc_ssl | 192.168.11.% |
| steven_roc_ssl | localhost    |
+----------------+--------------+


MariaDB [(none)]> SELECT user, host, ssl_type, authentication_string FROM mysql.user WHERE user = 'steven_roc_ssl';
+----------------+---------------------+----------+-------------------------------------------+
| User | Host | ssl_type | authentication_string |
+----------------+---------------------+----------+-------------------------------------------+
| steven_roc_ssl | localhost | X509 | *E82369254BC3EFBF640132F10F53B6BBEAFD77BB |
| steven_roc_ssl | 192.168.10.% | X509 | |
| steven_roc_ssl | 192.168.11.% | X509 | |
| steven_roc_ssl | stevenroc.lan | X509 | *E82369254BC3EFBF640132F10F53B6BBEAFD77BB |
| steven_roc_ssl | desktop-vsfb8b9.lan | ANY | *E82369254BC3EFBF640132F10F53B6BBEAFD77BB |
+----------------+---------------------+----------+-------------------------------------------+

MariaDB [(none)]> -- 查看用户权限<br />
MariaDB [(none)]> SHOW GRANTS FOR 'steven_roc_ssl'@'DESKTOP-VSFB8B9.lan';
<br />
+---------------------------------------------------------------------------------------------------------------------------------------------+<br />
| Grants for steven_roc_ssl@desktop-vsfb8b9.lan                                                                                               |<br />
+---------------------------------------------------------------------------------------------------------------------------------------------+<br />
| GRANT USAGE ON *.* TO `steven_roc_ssl`@`desktop-vsfb8b9.lan` IDENTIFIED BY PASSWORD '*E82369254BC3EFBF640132F10F53B6BBEAFD77BB' REQUIRE SSL |<br />
| GRANT ALL PRIVILEGES ON `chanking`.* TO `steven_roc_ssl`@`desktop-vsfb8b9.lan`                                                              |<br />
+---------------------------------------------------------------------------------------------------------------------------------------------+<br />
2 rows in set (0.000 sec)<br />


-- 删除所有 steven_roc_ssl 用户
DROP USER IF EXISTS 'steven_roc_ssl'@'localhost';
DROP USER IF EXISTS 'steven_roc_ssl'@'192.168.10.%';
DROP USER IF EXISTS 'steven_roc_ssl'@'192.168.11.%';
DROP USER IF EXISTS 'steven_roc_ssl'@'stevenroc.lan';
DROP USER IF EXISTS 'steven_roc_ssl'@'desktop-vsfb8b9.lan';

-- 重新创建,只保留需要的条目,全部强制 X509
CREATE USER 'steven_roc_ssl'@'192.168.10.%' 
  IDENTIFIED BY 'xiaocaoNB=' 
  REQUIRE X509;

CREATE USER 'steven_roc_ssl'@'192.168.11.%' 
  IDENTIFIED BY 'xiaocaoNB=' 
  REQUIRE X509;

-- 授予权限
GRANT ALL PRIVILEGES ON chanking.* TO 'steven_roc_ssl'@'192.168.10.%';
GRANT ALL PRIVILEGES ON chanking.* TO 'steven_roc_ssl'@'192.168.11.%';

FLUSH PRIVILEGES;
10、其他
mysql -u steven_roc -p 密码修改 \
=--ssl-ca=/home/stevenroc/MariaDBSSL_certs/ca.pem \
--ssl-cert=/home/stevenroc/MariaDBSSL_certs/client-cert.pem \
--ssl-key=/home/stevenroc/MariaDBSSL_certs/client-key.pem \
-e "SHOW STATUS LIKE 'Ssl_cipher';"

3

1)用户名 steven_roc_ssl   需要ssl证书连接
2)用户名 steven_roc 不需要ssl证书连接

4、

三、

3、
1)用户名 steven_roc_ssl   需要ssl证书连接
2)用户名 steven_roc 不需要ssl证书连接

 

 

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注