Como usar certificados de cliente com o mysql

1

Isso diz respeito à minha tentativa de usar um certificado do lado do cliente em uma conexão criptografada SSL para um servidor mysql.

Algumas noções básicas: O servidor é o Ubuntu 12.04 executando o mysql 14.14 Distrib 5.1.69. Client é MacOS 10.8.5 com o mysql Ver 14.14 Distrib 5.5.25a

Existem muitas maneiras de errar essa configuração, como testemunhado por muitos postando aqui e em outros lugares na web. Neste caso, parece que o lado do servidor está configurado corretamente, pois é possível usar um comando como

mysql --ssl-ca=CAcert.pem -u user -ppassword -h host.com -e '\s

para obter um relatório de que há uma cifra em uso.

Se, no entanto, eu adicionar um certificado e uma chave do lado do cliente, como

mysql --ssl-ca=CAcert.pem --ssl-cert=clientCert.pem --ssl-key=keyFile -u user -ppassword -h host.com -e '\s'

isto produz a mensagem de erro não informativa 'ERROR 2026 (HY000): Erro de conexão SSL: erro: 00000001: lib (0): func (0): reason (1)'. Não há nada no log de erros do servidor.

Verifiquei se o certificado do cliente pode ser verificado para a CA em uso com   openssl verify-purpose sslclient -CAfile CAcert.pem clientCert.pem

que retorna ok.

Os nomes canônicos do CAcert.pem e clientCert.pem são distintos. O CAcert.pem, clientCert.pem e keyFile são todos legíveis pelo usuário (e até mesmo tornar o mundo da chave legível não ajuda).

Infelizmente, dado o protocolo usado pelo mysql entre o cliente e o servidor, não parece possível usar o cliente openssl para fazer qualquer depuração aqui.

Alguma sugestão sobre qual é o problema? Ou maneiras de obter mais informações de depuração no lado do cliente?

    
por user1204270 21.09.2013 / 02:48

0 respostas

Tags