從 PHP 使用 SSL 連接到遠端 MySQL 伺服器
提出的問題涉及使用 SSL 與遠端 MySQL 伺服器建立安全連接PHP。使用 mysql_connect 的原始程式碼片段會產生「SSL 連線錯誤」。
了解問題
要深入研究根本原因,請考慮以下內容:
為了最佳化安全性,MySQL 設定應包含:
[客戶端]
安全通訊可以也可以透過PHP 設定:
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中文網其他相關文章!