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:
Então, em resumo, ajuda!