O MySQL pode verificar atributos do certificado X509 em adição ao esquema normal de usuário/senha. Todas as opções comuns ainda são exigidas (usuário, senha, máscara do endereço IP, noome tabela/banco de dados).
Existem diferentes possibilidades para limitarmos as conexões:
Sem nenhuma opção SSL ou X509, todos os tipos de conexões criptografadas/ descriptografadas são permitidas se o usuário e senha são válidos.
A opção REQUIRE SSL
limita o servidor
para permitir apenas conexões criptografadas SSL. Note
que esta opção pode ser omitida se não houver nenhum
registro ACL que permita conexões não SSL.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret' REQUIRE SSL;
REQUIRE X509
significa que o cliente
deve ter um certificado válido mas não nos procupamos
sobre o certificado, o emissor ou assunto exato. A única
restrição é que deve ser possível verificar a sua
assinatura com um dos certificados CA.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret' REQUIRE X509;
REQUIRE ISSUER 'emissor'
coloca uma
restrição na tentativa de conexão: O cliente deve
apresentar um certificado X509 válido emitido pelo CA
'emissor'
. Usar o certificado X509
sempre implica em criptografia, assim a opção
SSL
é desnecessária.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret'
->REQUIRE ISSUER 'C=FI, ST=Some-State, L=Helsinki,
'>O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com';
REQUIRE SUBJECT 'assunto'
exige que o
cliente tenha um certificado X509 com o assunto
'assunto'
. Se o cliente apresenta um
certificado que é valido mas tem um
'assunto'
diferente, a conexão é
disabilitada.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret'
->REQUIRE SUBJECT 'C=EE, ST=Some-State, L=Tallinn,
'>O=MySQL demo client certificate,
'>CN=Tonu Samuel/Email=tonu@mysql.com';
REQUIRE CIPHER 'método'
é necessário
para assegurar que uma criptografia forte será usada. O
SSL pode ser fraco se algoritmos antigos com chaves de
criptografias curtas são usados. Usando esta opção,
podemos pedir por algum método de criptografia exato para
permitir a conexão.
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret'
->REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';
As opções SUBJECT
,
ISSUER
e CIPHER
podem ser combinadas na cláusula
REQUIRE
desta forma:
mysql>GRANT ALL PRIVILEGES ON test.* TO root@localhost
->IDENTIFIED BY 'goodsecret'
->REQUIRE SUBJECT 'C=EE, ST=Some-State, L=Tallinn,
'>O=MySQL demo client certificate,
'>CN=Tonu Samuel/Email=tonu@mysql.com'
->AND ISSUER 'C=FI, ST=Some-State, L=Helsinki,
'>O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com'
->AND CIPHER 'EDH-RSA-DES-CBC3-SHA';
A partir do MySQL 4.0 a palavra chave
AND
é opcional entre opções
REQUIRE
.
A ordem das opções não importa, mas nenhuma opção pode ser especificada duas vezes.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.