PHP para MySQL usando SSL

1

Eu tenho um servidor MySQL remoto que requer que eu use SSL para conexões. Eu posso me conectar a ele usando o meu terminal. Mas quando tento me conectar a ele usando PHP, recebo o seguinte erro:

SSL3_GET_RECORD:wrong version number

Parece que o handshake OPENSSL falha e a razão pode ser que meu PHP está tentando se conectar a ele usando o SSL3. O servidor MySQL suporta apenas TLSv1.2. Existe uma maneira de forçar o PHP a se conectar usando TLSv1.2?

Aqui está o meu código usado para conectar:

<?php

ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
error_reporting (E_ALL|E_STRICT);

$db = mysqli_init();
mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);

$db->ssl_set(NULL, NULL, '/path/to/ca-cert.pem' , NULL, NULL);
$link = mysqli_real_connect ($db, 'hostname', 'user', 'password', 'dbname', 3306, NULL, MYSQLI_CLIENT_SSL);
if (!$link)
{
    die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
} else {
    $res = $db->query('SHOW TABLES;');
    print_r ($res);
    $db->close();
}    
?>

Coisas que tentei e possíveis problemas:

  1. Parece uma incompatibilidade de versão do openssl. Eu posso conectar usando meu terminal e não o PHP, então eu verifiquei minha versão openssl no terminal com o que eu uso phpinfo (), eles eram os mesmos
  2. O PHP possivelmente está usando o SSL3 para se conectar, e o servidor suporta apenas o TLSv1.2, não consegui encontrar uma maneira de forçar conexões do PHP com o MySQL usando o TLSv1.2
  3. Tentei observar o handshake usando o tcpdump / Wireshark, mas não acho que o processo seja iniciado, já que há uma incompatibilidade de versão.
  4. Confirmei usando "openssl s_client -debug" que o servidor não suporta SSL3, o que me faz pensar que isso é um problema no meu computador, mas não tenho certeza.
  5. A razão pela qual eu digo que meu cliente pode estar usando SSL3 é por causa de SSL3_GET_RECORD, eu não sei ao certo se estou certo nisso também.

Então, em resumo, ajuda!

    
por Silencer310 21.07.2017 / 00:48

0 respostas