Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: PHP ssl connect to mysql

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Подключение к БД по ssl
saifuddin
Отправлено: 22 Апреля, 2016 - 13:43:28
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




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

Есть ssl сертификат, раньше все работало, сейчас в одно часе на всех серверах прекратили работать сертификаты(подключение по ним)

Пробовал сменить все сертификаты, вплоть да же CA

Debian
mysqlnd install

Прописываю в консоли mysql -p -uuser --ssl-ca=/путь до файла --ssl-key=/путь до файла --ssl-cert=/путь до файла -h127.0.0.1
Через консоль подключаюсь отлично.

PHP:
скопировать код в буфер обмена
  1. ...
  2. protected function __construct()
  3.         {
  4.                  $ssl =  array(
  5.                  PDO::MYSQL_ATTR_SSL_KEY        =>'/etc/mysq/ssl/client-key.pem',
  6.                  PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysq/ssl/client-cert.pem',
  7.                  PDO::MYSQL_ATTR_SSL_CA         =>'/etc/mysq/ssl/ca-cert.pem'
  8.         );
  9.                 try {
  10.                         $this->connection = new PDO('mysql:host=127.0.0.1;dbname='.$this->dbname, $this->user, $this->pass, $ssl);
  11.                 } catch (Exception $e) {
  12. ...


ошибка:
PHP Fatal error: Call to a member function prepare() on null

Если выключить сертификаты, подключение к БД работает нормально. Проблема именно в SSL. Но, не знаю, какого именно характера. По ошибке не создается объект, так как нет подключения к БД. Я не понимаю что могло сломаться. Ни чего не меняется уже годами, а тут вот те на...

Помогите, кто может!!!
Заранее спасибо!
 
 Top
Мелкий Супермодератор
Отправлено: 22 Апреля, 2016 - 14:38:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Так mysql-то вам что отвечает?
В этом catch или более глобальном catch (\Exception)


-----
PostgreSQL DBA
 
 Top
saifuddin
Отправлено: 22 Апреля, 2016 - 15:52:57
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Подключение не удалось: SQLSTATE[HY000] [2002]

Вот эта ошибка выдается в

} catch (Exception $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
 
 Top
Viper
Отправлено: 22 Апреля, 2016 - 20:14:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Сертификат на кого выдан? И к кому подключаетесь вы?
как-бы намекает.
(Добавление)
saifuddin пишет:
в одно часе на всех серверах прекратили работать сертификаты
что делалось при этом? Есть же причина, а не просто от фонаря отвалилось. Обновления случаем не ставились? Ничего не менялось?

(Отредактировано автором: 22 Апреля, 2016 - 20:15:24)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
saifuddin
Отправлено: 22 Апреля, 2016 - 20:24:35
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




openssl genrsa 1024 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem
openssl req -newkey rsa:1024 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
openssl req -newkey rsa:1024 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
(Добавление)
через неделю пришлось с нуля поднимать сервер, вот и обнаружилось, что сертификаты не работают
 
 Top
saifuddin
Отправлено: 23 Апреля, 2016 - 14:33:38
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Авг. 2012  


Помог: 0 раз(а)




Видимо изменился Openssl, теперь нужно писать в CN сертификата сервера 127.0.0.1 в данном случае.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Администрирование *nix »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB