MySQL e SSL com -sha256

2

Eu estou tentando criar algum certificado para usar com o MySQL e tudo funciona bem se eu usar o algoritmo sha1. Se eu adicionar o parâmetro -sha256 ou -sha384, eu não consigo conectar ao MySQL !. Eu recebo este erro: ERRO 2026 (HY000): erro de conexão SSL: ASN: confirmação de assinatura inválida

Encontrei uma pergunta semelhante aqui , mas a solução aceita foi use -sha1. Eu quero usar sha2, desde Microsoft, Google & O Firefox não recomenda mais usar o sha1.

Isto é o que eu uso para criar as chaves. Se eu remover o switch -sha256, ele funcionará bem usando sha1. Eu também tentei com uma chave de 2048 bits, mesmo problema

openssl genrsa 4096 > ca-key.pem
openssl req -sha256 -new -x509 -nodes -days 10000 -key ca-key.pem -out ca-cert.pem

openssl req -sha256 -newkey rsa:4096 -days 10000 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -sha256 -in server-req.pem -days 10000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

openssl req -sha256 -newkey rsa:4096 -days 10000 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -sha256 -in client-req.pem -days 10000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

O certificado é verificado sem problemas

openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem

Resultado:

server-cert.pem: OK
client-cert.pem: OK

my.cnf

[mysqld]
ssl                       = On
ssl-cipher                = DHE-RSA-AES256-SHA
ssl-ca                    = /etc/mysql/ssl/ca-cert.pem
ssl-cert                  = /etc/mysql/ssl/server-cert.pem
ssl-key                   = /etc/mysql/ssl/server-key.pem

Usando o MySQL 5.5.40

mysql>SELECT version()

5.5.40-0+wheezy1

Variáveis SSL parecem bem

mysql> show variables like '%ssl%';
Variable_name            Value
ssl_key                  /etc/mysql/ssl/server-key.pem
ssl_cipher               DHE-RSA-AES256-SHA
ssl_cert                 /etc/mysql/ssl/server-cert.pem
ssl_capath 
ssl_ca                   /etc/mysql/ssl/ca-cert.pem
have_ssl                 YES
have_openssl             YES

Versão openssl

~ $  openssl version
OpenSSL 1.0.1e 11 Feb 2013
    
por user2094579 08.11.2014 / 14:38

1 resposta

2

Eu resolvi esse problema.

Eu estava recebendo o erro: ERRO 2026 (HY000): erro de conexão SSL: ASN: confirmação de assinatura inválida quando eu estava conectando com a versão 8.3.0.4694 da HeidiSQL. Eu não mencionei isso, pois achei que não era relevante.

Eu tentei conectar usando a função mysqli e ssl_set no PHP 5.6.2, e isso funcionou.

Então o problema não era o MySQL. Eu então instalei o HeidiSQL 9.0.0.4865 e ele se conectou sem falhas com um certificado usando o sha256

    
por 11.11.2014 / 10:48