Ich muss meine MariaDB-Authentifizierung etwas sicherer machen als standardmäßig. Ich habe versucht, dafür SSL-Unterstützung einzurichten, habe aber nur eine alte Anleitung hier gefunden:
So aktivieren Sie MySQL SSL unter Ubuntu
Ich habe es befolgt, aber nach der Überprüfung erhalte ich Folgendes:
MariaDB [(none)]> show variables like "%ssl%";
+---------------+----------------------------+
| Variable_name | Value |
+---------------+----------------------------+
| have_openssl | NO |
| have_ssl | DISABLED |
| ssl_ca | /etc/mysql/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/mysql/server-key.pem |
+---------------+----------------------------+
9 rows in set (0.00 sec)
MariaDB [(none)]> \s
...
SSL: not in use
...
Diese Quelle wurde 2011 geschrieben. Vielleicht ist sie veraltet, oder ich habe irgendwo einen Fehler gemacht. Als ich sie generiert habe, .pems
gab es keine Fehler. Meine /var/log/mysql/error.log
Datei ist leer.
Hast du eine Idee?
Antwort1
Um SSL in MariaDB zu aktivieren, muss Ihre Version mit SSL () kompiliert werden have_ssl | DISABLED
und Sie müssen es in Ihrer MySQL-Konfiguration aktivieren:
# grep -Ri ssl /etc/mysql/my.cnf
ssl = true
ssl-ca = /etc/mysql/cacert.pem
ssl-cert = /etc/mysql/server-cert.pem
ssl-key = /etc/mysql/server-key.pem
Nach einem Neustart oder dem MySQL-Prozess sollte SSL aktiviert sein.
Randnotiz
diese Antwortaus einer anderen Frage hat mir geholfen, diesen Fehler zu beheben:
ERROR 2026 (HY000): SSL connection error: tlsv1 alert unknown ca
Antwort2
Ich habe eine Ubuntu 18.04.3-Zertifizierungsstelle erstellt. Habe alles daran überprüft. Root, Zertifikat, Schlüsselkette funktionieren.
MariaDB [(none)]>
MariaDB [(none)]>
MariaDB [(none)]>
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';
+---------------------+---------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /etc/mysql/ssl/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /etc/mysql/ssl/mariadb-cert.pem |
| ssl_cipher | DHE-RSA-AES256-SHA |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /etc/mysql/ssl/mariadb-key.pem |
| version_ssl_library | OpenSSL 1.1.1c 28 May 2019 |
+---------------------+---------------------------------+
mysql Ver 15.1 Distrib 10.4.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Connection id: 37
Current database:
Current user: sa@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.4.8-MariaDB-1:10.4.8+maria~bionic mariadb.org binary distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 19 hours 5 min 57 sec
Threads: 7 Questions: 66 Slow queries: 0 Opens: 31 Flush tables: 1 Open tables: 25 Queries per second avg: 0.000
--------------
MariaDB [(none)]>
Ich habe den Prozess für die CA und das Erstellen der MariaDB-SSL-Schlüssel online befolgt.
Ich habe das gemacht, my.cnf
damit die Schlüssel oben angezeigt werden. /etc/mysql/mariadb.cnf
Die Schlüssel sind darin enthalten. Ich habe das Mariadb-Repository für die Updates installiert.
Hier ist my.cnf
:
[mysqld]
ssl = true
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-cert = /etc/mysql/ssl/mariadb-cert.pem
ssl-key = /etc/mysql/ssl/mariadb-key.pem
log_error=/var/log/mysql/mysql_error.log
ssl-cipher=DHE-RSA-AES256-SHA
grep -Ri ssl /etc/mysql/my.cnf
ssl = true
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-cert = /etc/mysql/ssl/mariadb-cert.pem
ssl-key = /etc/mysql/ssl/mariadb-key.pem
ssl-cipher=DHE-RSA-AES256-SHA
ssl-cipher entry can be removed.