PHP에서 SSL을 사용하여 원격 MySQL 서버에 연결
이전 MySQL을 사용하여 SSL을 사용하여 원격 MySQL 서버에 연결을 시도하는 경우 확장명(mysql_connect)을 사용하면 "SSL 연결 오류"를 나타내는 오류가 발생할 수 있습니다. 보안 터미널 연결을 활성화하기 위해 my.cnf에 적절한 SSL 매개변수를 구성했음에도 불구하고 PHP 연결은 여전히 실패합니다.
PHP 버전 고려 사항
제공된 코드는 오래된 MySQL 확장을 활용합니다. , 이는 더 이상 적극적으로 개발되지 않습니다. 대신 다음을 포함하여 향상된 기능 세트를 제공하는 MySQLi 확장(MySQL Improved Extension)을 사용하는 것이 좋습니다.
향상된 연결성 MySQLi
다음 샘플 코드는 보안 SSL 연결을 위해 MySQLi를 사용하는 방법을 보여줍니다.
ini_set ('error_reporting', E_ALL); ini_set ('display_errors', '1'); error_reporting (E_ALL|E_STRICT); $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);
PDO_MYSQL 대안
이전 PHP 버전에서는 제한된 SSL 지원으로 인해 이상적이며 PDO_MYSQL을 SSL에 활용할 수 있습니다. 연결:
$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' )); $statement = $pdo->query("SHOW TABLES;"); $row = $statement->fetch(PDO::FETCH_ASSOC);
5.3.8 이전 PHP 버전용 PDO의 SSL 지원이 예상대로 작동하지 않을 수 있다는 점에 유의하는 것이 중요합니다.
추가 문제가 발생하면 다음을 참조하세요. 추가 지침은 다음 리소스를 참조하세요.
위 내용은 PHP에서 SSL을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!