ホームページ >データベース >mysql チュートリアル >PHP から SSL を使用してリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

PHP から SSL を使用してリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-19 18:43:031119ブラウズ

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 Enhanced 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 = On in php.ini

MySQLi Solution

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。