Menyambung ke Pelayan MySQL Jauh dengan SSL daripada PHP
Persoalannya menimbulkan kebimbangan mewujudkan sambungan selamat ke pelayan MySQL jauh menggunakan SSL daripada PHP. Coretan kod asal yang menggunakan mysql_connect menghasilkan "ralat sambungan SSL."
Memahami Isu
Untuk menyelidiki punca, pertimbangkan perkara berikut:
Untuk mengoptimumkan keselamatan, konfigurasi MySQL hendaklah termasuk:
[klien]
Komunikasi selamat juga boleh dikonfigurasikan melalui PHP:
MySQLi Solution
Untuk memudahkan sambungan SSL menggunakan MySQLi, manfaatkan kod berikut:
$db = mysqli_init(); mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL); $link = mysqli_real_connect ($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
Penyelesaian PDO_MYSQL
Jika pematuhan kepada PDO_MYSQL adalah penting, gunakan pendekatan ini:
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', 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' ) );
Awas
Perhatikan bahawa sokongan SSL untuk PDO adalah terhad dalam versi PHP sebelum 5.3.8. Untuk kefungsian optimum, pertimbangkan untuk meningkatkan kepada keluaran PHP yang lebih terbaharu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL daripada PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!