Erro SSL do MySQL, somente ao conectar do windows / osX

6

Estou usando o openssl para gerar certificados SSL que estou usando para conectar ao mysql com criptografia SSL. Isso funciona bem enquanto eu estou conectando a partir do ambiente de host local (mesmo quando eu conecto através do IP público do servidor, eu também conectei com sucesso a partir das caixas do servidor web). No entanto, quando tento me conectar da minha máquina dev local, recebo um erro de SSL.

Ao conectar-se a partir da plataforma de hospedagem

mysql -u metrics -p -h 45.33.x.x --ssl-key=client-key.pem --ssl-ca=ca.pem --ssl-cert=client-cert.pem
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 136 ...

Ao conectar a partir da máquina dev do Mac, eu usei o scp para copiar os arquivos de certificados / chaves para a minha máquina dev

mysql -u metrics -h 45.33.x.x -p --ssl-key=client-key.pem --ssl-cert=client-cert.pem --ssl-ca=ca.pem
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)

Aqui está o que eu fiz para tentar resolver este problema

  1. Eu criei somas de verificação de cert / key / ca no servidor e na máquina local, elas são idênticas
  2. Eu olhei para Não é possível conectar-se ao MySQL 5.5 com SSL questão de falha do servidor nem ideia resolveu o problema
  3. Eu tenho SSL depurado iniciando o servidor openSSL ( no servidor mysql) e conectando da minha máquina local, mais uma vez sem problemas.

Se isso faz diferença, todos os servidores estão executando o 14.04 com openSSL "OpenSSL 1.0.1f 6 de janeiro de 2014" e estou conectando do osX 10.10.4 com o openSSL "OpenSSL 1.0.2c 12 de junho de 2015"

Então, alguma ideia?

    
por Josh Moore 07.09.2015 / 09:02

2 respostas

2

Isso parece um problema relacionado à codificação. Tente adicionar a opção no servidor e no cliente: --ssl-cipher=AES128-SHA . Você pode usar qualquer outra suíte presente em ambos os lados na saída de openssl ciphers HIGH .

Também é possível que o arquivo de configuração do cliente MySQL inclua a opção ssl-verify-server-cert ; se for o caso, remova-o ou (mais seguro) use um nome de domínio do certificado CN do servidor.

Se ainda falhar, você pode:

  1. Sniff sua conexão com o tcpdump ou o Wireshark, veja o handshake TLS.
  2. Solucione o problema com stunnel ou VPN.
por 16.09.2015 / 07:48
0

Sem ver certificados, tudo é um palpite.

Mas este parece muito relevante: link

Em resumo, o certificado do cliente CN DEVE ser diferente do CA CN.

As palavras-chave "DEVE", "NÃO DEVE", "É NECESSÁRIO", "DEVE", "NÃO DEVE", "NÃO DEVE", "NÃO DEVE", "RECOMENDADO", "MAIO" e "OPCIONAL". este documento deve ser interpretado como descrito em [RFC 2119] .

    
por 17.09.2015 / 01:11