首頁 >資料庫 >mysql教程 >如何使用 PHP 中的 SSL 安全連接到遠端 MySQL 伺服器?

如何使用 PHP 中的 SSL 安全連接到遠端 MySQL 伺服器?

Barbara Streisand
Barbara Streisand原創
2024-11-19 18:43:031071瀏覽

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

從 PHP 使用 SSL 連接到遠端 MySQL 伺服器

提出的問題涉及使用 SSL 與遠端 MySQL 伺服器建立安全連接PHP。使用 mysql_connect 的原始程式碼片段會產生「SSL 連線錯誤」。

了解問題

要深入研究根本原因,請考慮以下內容:

  • 與舊版mysql_connect 擴充相比,MySQLi(MySQLi改進擴展)為加密連接提供了卓越的支援。
  • 為了最佳化安全性,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 .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