Por que recebo um erro OpenSSL ao conectar o PHPMyAdmin através de SSL?

2

Estou executando o PHP 5.6.11 no Apache 2.2 com OpenSSL 1.0.1 no Ubuntu 12. Eu configurei com sucesso o SSL no Apache e no MySQL.

Agora, quero configurar um PHPMyAdmin e conectá-lo por meio de SSL. Eu realmente não preciso disso no localhost, mas eu não tenho outra maneira de verificar se a minha configuração está funcionando corretamente. Então, ao invés de conectar o PMA ao "localhost", eu o conectei ao meu domínio "mx.testdomain.com". Isso abre uma conexão TCP e não usa o soquete normal (não consegui obter SSL para trabalhar com o soquete).

Quando eu faço login no meu PMA, recebo a seguinte mensagem de erro:

Error

SELECT * FROM information_schema.CHARACTER_SETS

MySQL reports: 
# 2006 - MySQL server has gone away

Quando eu desative SSL na configuração do meu PMA, tudo funciona bem, mas eu recebo os seguintes "Erros de Backtrace" na primeira vez que eu faço o login:

Warning in ./libraries/dbi/DBIMysqli.class.php#236  mysqli_select_db(): SSL operation failed with code 1.
OpenSSL Error messages: error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length error:0607A082:digital envelope routines:EVP_CIPHER_CTX_set_key_length:invalid key length

Eu uso o mesmo certificado SSL para o Apache e o MySQL.

Quando executo este comando PHP, ele retorna uma cifra válida:

$link = mysql_connect("mx.testdomain.com","testadmin","testpassword",false,MYSQL_CLIENT_SSL) 
        or die(mysql_error());
$res = mysql_query("SHOW STATUS LIKE 'ssl_cipher';",$link);
print_r(mysql_fetch_row($res));
echo "Finished.";

Saída:

Array (
    [0] => Ssl_cipher
    [1] => AES256-SHA ) Finished.

Quando verifico minha URL com file_get_contents, tenho a seguinte saída:

array(4) {
   ["protocol"]=>   string(7) "TLSv1.2"
   ["cipher_name"]=>  string(25) "DHE-RSA-AES256-GCM-SHA384"   
   ["cipher_bits"]=>   int(256)
   ["cipher_version"]=>   string(11) "TLSv1/SSLv3"
}
    
por Riemu 12.07.2015 / 02:59

0 respostas