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
Форумы портала PHP.SU :: Версия для печати :: PHP ssl connect to mysql
Форумы портала PHP.SU » Серверное администрирование » Администрирование *nix » PHP ssl connect to mysql

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

1. saifuddin - 22 Апреля, 2016 - 13:43:28 - перейти к сообщению
Доброго времени суток!

Есть 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. Но, не знаю, какого именно характера. По ошибке не создается объект, так как нет подключения к БД. Я не понимаю что могло сломаться. Ни чего не меняется уже годами, а тут вот те на...

Помогите, кто может!!!
Заранее спасибо!
2. Мелкий - 22 Апреля, 2016 - 14:38:54 - перейти к сообщению
Так mysql-то вам что отвечает?
В этом catch или более глобальном catch (\Exception)
3. saifuddin - 22 Апреля, 2016 - 15:52:57 - перейти к сообщению
Подключение не удалось: SQLSTATE[HY000] [2002]

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

} catch (Exception $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}
4. Viper - 22 Апреля, 2016 - 20:14:36 - перейти к сообщению
Сертификат на кого выдан? И к кому подключаетесь вы?
как-бы намекает.
(Добавление)
saifuddin пишет:
в одно часе на всех серверах прекратили работать сертификаты
что делалось при этом? Есть же причина, а не просто от фонаря отвалилось. Обновления случаем не ставились? Ничего не менялось?
5. saifuddin - 22 Апреля, 2016 - 20:24:35 - перейти к сообщению
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
(Добавление)
через неделю пришлось с нуля поднимать сервер, вот и обнаружилось, что сертификаты не работают
6. saifuddin - 23 Апреля, 2016 - 14:33:38 - перейти к сообщению
Видимо изменился Openssl, теперь нужно писать в CN сертификата сервера 127.0.0.1 в данном случае.

 

Powered by ExBB FM 1.0 RC1