Estou tentando proteger meu trabalho com uma conexão SSL entre alguns aplicativos e meus dabtabases.
Na primeira vez, pesquiso como criar certificados e faço algo assim:
Criação da pasta:
[...]$ mkdir certificats && cd certificats
CA:
[...]$ openssl genrsa 2048 > ca-key.pem
[...]$ openssl req -new -x509 -nodes -days 500 -key ca-key.pem > ca-cert.pem
Servidor:
[...]$ openssl req -newkey rsa:2048 -days 500 -nodes
-keyout server-key.pem > server-req.pem
[...]$ openssl x509 -req -in server-req.pem -days 500
-CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 > server-cert.pem
Cliente:
[...]$ openssl req -newkey rsa:2048 -days 500 -nodes
-keyout client-key.pem > client-req.pem
[...]$ openssl x509 -req -in client-req.pem -days 500 -CA ca-cert.pem
-CAkey ca-key.pem -set_serial 01 > client-cert.pem
Eu respondo a todas as perguntas feitas assim: a mesma resposta para os três arquivos, exceto para "nome comum" (eu vi em algum lugar do que isso pode causar problemas).
Configuração do servidor:
Depois disso, eu fiz isso:
[...]$ vim /etc/my.cnf
para adicionar as seguintes regras (no [mysqld]):
ssl-ca=/etc/ssl/certs_mysql/ca-cert.pem
ssl-cert=/etc/ssl/certs_mysql/server-cert.pem
ssl-key=/etc/ssl/certs_mysql/server-key.pem
Agora, quando eu faço login em uma conta normal, posso ver usando
SHOW VARIABLES LIKE '%ssl%';
que o ssl está ativado. (veja 3 path + 2 'YES')
Conexão:
Então, agora, para conexão, eu tenho que usar:
[...]$ mysql -u user -ppassword -h localhost --ssl-ca=ca-cert.pem
--ssl-key=client-key.pem --ssl-cert=client-cert.pem
certo? (o usuário está no modo 'REQUIRE SSL').
Mas isso não funcionou bem:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Se eu remover o "ca-cert.pem" da conexão, este trabalho "bem". Eu posso conectar, e eu vi "Ssl_cipher" com algo como "xxx-xxx-AES264-xxx" quando eu escrevi "\ s".
Então, eu tentei adicionar:
[client]
ssl-ca=/etc/ssl/certs_mysql/ca-cert.pem
ssl-cert=/etc/ssl/certs_mysql/client-cert.pem
ssl-key=/etc/ssl/certs_mysql/client-key.pem
Mas quando eu adiciono "ssl-x" na seção "client", o mysql pára, MAS não irá reiniciar usando
[...]$ service mysqld restart
Por que não posso escrever a configuração ssl na seção do cliente?
Eu tento uma conexão com meus bancos de dados usando um arquivo PHP, quando eu usei os 3 arquivos, a conexão é recusada, mas se eu usasse apenas "client-key.pem" e "client-cert.pem", eu m conectado.
eu vi em algum lugar do que usar
[...]$ cat client-cert.pem server-cert.pem > ca-cert.pem
pode resolver o problema, mas o certificado usado continha 2 certs?
Então, o problema, no entanto, está no ca-cert.pem? Não reconhecer como um "certificado real" para que a conexão se recusasse? Mas por que não posso usar [cliente]?
Agradecemos antecipadamente por suas respostas