Связка ssl and php

Автор saifuddin, 09 ноября 2015, 02:13:14

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

saifuddin

Доброго времени суток!

У меня стоит debian 7
установил php5-mysqlnd

установил ssl для БД
mkdir /etc/mysql/ssl && cd /etc/mysql/ssl/
openssl genrsa 2048 > mysql-ca-key.pem
openssl req -new -x509 -nodes -days 3660 -key mysql-ca-key.pem -out mysql-ca-cert.pem
openssl rsa -in mysql-ca-key.pem -out mysql-ca-key.pem
openssl req -newkey rsa:2048 -days 3660 -nodes -keyout mysql-server-key.pem -out mysql-server-req.pem
openssl rsa -in mysql-server-key.pem -out mysql-server-key.pem
openssl x509 -req -in mysql-server-req.pem -days 366 -CA mysql-ca-cert.pem -CAkey mysql-ca-key.pem -set_serial 01 -out mysql-server-cert.pem
openssl verify -CAfile mysql-ca-cert.pem mysql-server-cert.pem


в my.cnf
[mysql]
ssl-ca=/etc/mysql/ssl/mysql-ca-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-server-cert.pem
ssl-key=/etc/mysql/ssl/mysql-server-key.pem
[mysqld]
ssl-ca=/etc/mysql/ssl/mysql-ca-cert.pem
ssl-cert=/etc/mysql/ssl/mysql-server-cert.pem
ssl-key=/etc/mysql/ssl/mysql-server-key.pem



в БД
        CREATE USER 'cluster_user'@'%' IDENTIFIED BY 'password';
CREATE USER 'cluster_user'@'localhost' IDENTIFIED BY 'password';
GRANT USAGE ON *.* TO 'cluster_user'@'%' REQUIRE SSL;
GRANT USAGE ON *.* TO 'cluster_user'@'localhost' REQUIRE SSL;
        FLUSH PRIVILEGES;


напрямую к бд подключается.
mysql -ucluster_user -ppassword

Теперь самое интересное.

создал файл для проверки подключения к БД из php
<?php
ini_set
('error_reporting'E_ALL);
ini_set('display_errors'1);
ini_set('display_startup_errors'1);

$user "cluster_user";
$password "password";
$database "super_db";
$host "localhost";

$ssl = array(
                
PDO::MYSQL_ATTR_SSL_KEY    =>'/etc/mysql/ssl/mysql-server-key.pem',
                
PDO::MYSQL_ATTR_SSL_CERT=>''/etc/mysql/ssl/mysql-server-cert.pem',
                PDO::MYSQL_ATTR_SSL_CA    =>''/etc/mysql/ssl/mysql-ca-cert.pem'
        
);
        try {
                
$dbl = new PDO("mysql:host=$host;dbname=$database"$user$password$ssl);
                
$dbl->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        } catch(
PDOException $e) {
echo 
$e->getMessage();
die;
        }


Ошибки
Warning: PDO::__construct(): this stream does not support SSL/crypto in /var/www/info2.php on line 17

Warning: PDO::__construct(): Cannot connect to MySQL by using SSL in /var/www/info2.php on line 17

Warning: PDO::__construct(): [2002] (trying to connect via unix:///var/run/mysqld/mysqld.sock) in /var/www/info2.php on line 17
SQLSTATE[HY000] [2002]
[свернуть]

в чем проблема?
this stream does not support SSL/crypto  не пойму, ему что не нравится метод шифрования? Возможно я не так создал ssl? Помогите мне решить эту проблему!!!

*используйте теги для оформления. endru

Cообщение объединено 09 ноября 2015, 10:50:49

localhost заменить на 127.0.0.1   и все будет работать. Тема закрыта!