У меня есть сервер веб-сайта, на котором должна быть возможность войти в базу данных. И сервер, и база данных находятся на одном и том же компьютере, поэтому обмен данными осуществляется через localhost.
Проблема состоит в том, что я пытаюсь соединить эти элементы с включенным SSL для практики. Для этого у меня есть небольшой код un PHP, который должен создать соединение после установки правильных опций. Для части SSL я создал свой собственный CA и создал две пары crts и ключей: одну пару для сервера nginx и другую для базы данных.
Когда я пытаюсь установить соединение, real_connect возвращает значение NULL, но значение errno равно 0, поэтому я не знаю, есть ли ошибка в коде или это связано с сертификатами SSL.
Если я пытаюсь установить соединение без SSL, нет проблема.
Это код PHP, который должен обрабатывать логин:
<html>
<head>
<title>MariaDB Query</title>
</head>
<body>
<?php
$server="127.0.0.1";
$user=$_POST['user'];
$pwd=$_POST['pwd'];
$db="mydb";
$mysqli = mysqli_init();
if(!$mysqli){
die("mysqli failed");
}
$mysqli->ssl_set("/etc/mysql/ssl/mariadb.key", "/etc/mysql/ssl/mariadb_cert.pem", "/etc/nginx/server_files/rootCA.crt", NULL, NULL);
if(!$mysqli->real_connect($server, $user, $pwd, $db, null, null, MYSQLI_CLIENT_SLL)){
die("Connect Error:" . mysqli_connect_error() ." : ". mysqli_connect_errno());
} else {
echo 'SUCCESS';
}
$mysqli->close();
?>
</body>
</html>
Обратите внимание, что пользователь и пароль получены с другого веб-сайта, который обрабатывает прием этих значения (веб-сайт classi c с двумя областями для ввода текста).
Спасибо за потраченное время.