Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

PHP mengabaikan sertifikat ssl saat menghubungkan ke MySql

Sekilas, Anda tidak menyetel MYSQLI_CLIENT_SSL pilihan untuk koneksi.

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db', null, MYSQLI_CLIENT_SSL)) { ... }

Pembaruan:
Anda dapat mencoba menambahkan $mysqli->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); sebelum $mysqli->ssl_set() .

Juga, ini bekerja untuk saya:

<?php
$pdo = new PDO('mysql:host=ip;dbname=dbname', 'username', 'password', array(
    PDO::MYSQL_ATTR_SSL_KEY    =>'/etc/mysql/ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA    =>'/etc/mysql/ssl/ca-cert.pem'
    )
);
$stmt = $pdo->query("SHOW TABLES;");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($row);
?>

Pembaruan 2: Anda mungkin menerima bad handshake jika Anda menggunakan kata sandi mysql gaya lama (panjang 16 byte ). Untuk memeriksa, jalankan kueri berikut:

mysql> select length(Password) from mysql.user where User='youruser'

Jika Anda menerima 16 :

// disable old_passwords:
mysql> SET @@session.old_passwords = 0;

// update password for user used in PHP script:
mysql> SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass');

// check if we have a 41 bytes long password:
mysql> select length(Password) from mysql.user where User='youruser'

Dan periksa koneksi dari skrip PHP lagi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbarui tabel MySQL dengan peringkat rekor dalam grup

  2. Mysql High UPDATE SELECT menyebabkan kelambatan

  3. chaining bergabung kembali ke tabel target

  4. Membangun Sistem Newsletter Dengan PHP dan MySQL

  5. Bagaimana mengatasi MySQL innodb Menunggu kunci metadata tabel di TRUNCATE TABLE?