>  기사  >  데이터 베이스  >  PHP에서 SSL을 사용하여 원격 MySQL 서버에 어떻게 안전하게 연결할 수 있습니까?

PHP에서 SSL을 사용하여 원격 MySQL 서버에 어떻게 안전하게 연결할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-19 18:43:031042검색

How Can I Securely Connect to a Remote MySQL Server Using SSL from PHP?

PHP에서 SSL을 사용하여 원격 MySQL 서버에 연결

제출된 질문은 PHP에서 SSL을 사용하여 원격 MySQL 서버에 대한 보안 연결 설정에 관한 것입니다. PHP. mysql_connect를 사용하는 원본 코드 조각에서는 "SSL 연결 오류"가 발생합니다.

문제 이해

근본 원인을 자세히 알아보려면 다음을 고려하세요.

  • MySQLi(MySQL Improved Extension)는 레거시에 비해 암호화된 연결에 대한 탁월한 지원을 제공합니다. mysql_connect 확장.
  • 보안을 최적화하려면 MySQL 구성에 다음이 포함되어야 합니다.

    • [클라이언트]

      • ssl-ca = /etc/mysql/ssl/ca-cert.pem
      • ssl-cert = /etc/mysql/ssl/client-cert.pem
      • ssl-key = /etc/mysql/ssl/client-key.pem
  • PHP를 통해 보안 통신을 구성할 수도 있습니다:

    • mssql.secure_connection = 켜기 php.ini

MySQLi 솔루션

MySQLi를 사용하여 SSL 연결을 용이하게 하려면 다음 코드를 활용하세요.

$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 해결 방법

PDO_MYSQL을 준수해야 하는 경우 다음 접근 방식을 사용하세요.

$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'
    )
);

주의

PDO에 대한 SSL 지원은 5.3.8 이전 PHP 버전에서는 제한됩니다. 최적의 기능을 위해서는 최신 PHP 릴리스로 업그레이드하는 것이 좋습니다.

위 내용은 PHP에서 SSL을 사용하여 원격 MySQL 서버에 어떻게 안전하게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.