Eu quero configurar conexões SSL para um servidor MariaDB distante. Eu segui as instruções aqui . Gerei o certificado para o servidor, reiniciei e obtive isto:
+---------------------+-------------------------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------------------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | /var/packages/MariaDB10/etc/ssl/ca-cert.pem |
| ssl_capath | |
| ssl_cert | /var/packages/MariaDB10/etc/ssl/server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | /var/packages/MariaDB10/etc/ssl/server-key.pem |
| version_ssl_library | OpenSSL 1.0.2r-fips 26 Feb 2019 |
+---------------------+-------------------------------------------------+
Também gerei o certificado do cliente. No entanto, para ter certeza de que entendi o processo, procedi passo a passo e não os instalei. Primeiro mudei as configurações do usuário para REQUIRE SSL
. Então
mysql --user=user --password=password
falha com um
ERROR 1045 (28000): Access denied for user 'user'@'host' (using password: YES)
Até agora tudo bem. No entanto,
mysql --user=user --password=password --ssl
é bem-sucedido, embora eu não tenha fornecido nenhum certificado de cliente. status
mostra
SSL: Cipher in use is DHE-RSA-AES256-GCM-SHA384
o que, se bem entendi, significa que a conexão está de fato usando SSL. Como isso é possível, é o comportamento esperado?
Estou usando o MariaDB 10.3.
REQURE SSL requer apenas uma conexão TLS. Use
REQUIRE X509
para impor um certificado de cliente TLS, ou melhor, useREQUIRE SUBJECT
ouREQUIRE ISSUER
para garantir que seja o certificado idêntico que corresponde ao emitido.