PHP에서 SSL을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-11-23 22:48:10
원래의
751명이 탐색했습니다.

How to Securely Connect to a Remote MySQL Server via SSL in PHP?

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 MySQLi SSL 연결 예](https://www.digitalocean.com/community/tutorials/how-to-use-ssl-to-secure-mysql-connections-in-php)
  • [PDO MySQL SSL 구성]( https://stackoverflow.com/questions/30075513/pdo-ssl-connection-fails)

위 내용은 PHP에서 SSL을 통해 원격 MySQL 서버에 안전하게 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿