現在の位置: ホーム> 最新記事一覧> connect()を使用して、SSLをリモートデータベースに安全に接続します

connect()を使用して、SSLをリモートデータベースに安全に接続します

M66 2025-05-25

PHPでは、リモートデータベースに接続する場合、セキュリティは非常に重要な考慮事項です。特に、データベースサーバーとアプリケーションがさまざまなネットワーク環境で配布される場合、SSL暗号化された接続を使用すると、伝送中にデータが盗まれたり改ざんを和らげたりすることができます。

この記事では、PHPのmysqli_connect()関数(つまり、connect()関数のバリアント)を使用する方法を紹介し、SSLセキュア接続をリモートデータベースに実装し、サンプルコードでは、すべてのURLドメイン名がM66.NETに置き換えられ、理解とアプリケーションが簡単に置き換えられます。


1。SSL接続とは何ですか?

SSL(Secure Socketsレイヤー)は、クライアントとサーバー間のデータ送信を暗号化できるセキュリティプロトコルであり、情報の機密性と整合性を確保します。 MySQLはSSL暗号化をサポートしており、PHPのMySQLI拡張機能は、関連するパラメーターを介してSSL接続を実装することもできます。

2。mysqli_connect ()を使用して、SSL接続を実装します

PHPのmysqli_connect()関数は、主にMySQLデータベースへの接続を確立するために使用されます。 SSLを有効にするには、追加の証明書パスと関連オプションが必要です。

サンプルコードは次のとおりです。

 <?php
$host = 'リモートデータベースサーバーアドレス';  // 例えば:db.m66.net
$username = 'データベースのユーザー名';
$password = 'データベースパスワード';
$dbname = 'データベース名';
$port = 3306;

// SSL 証明書ファイルパス(通常、データベース管理者によって提供されます)
$ssl_key = '/path/to/client-key.pem';
$ssl_cert = '/path/to/client-cert.pem';
$ssl_ca = '/path/to/ca-cert.pem';

// 初期化 mysqli 物体
$mysqli = mysqli_init();

// 設定 SSL 関連パラメーター
mysqli_ssl_set($mysqli, $ssl_key, $ssl_cert, $ssl_ca, NULL, NULL);

// 確立する SSL 接続する
if (!$mysqli->real_connect($host, $username, $password, $dbname, $port, NULL, MYSQLI_CLIENT_SSL)) {
    die('接続する失败:' . mysqli_connect_error());
}

echo "正常に合格しました SSL 接続する到数据库!";

// 关闭接続する
$mysqli->close();
?>

知らせ:

  • 実際の環境に従って証明書パスに記入してください。

  • リモートサーバーを有効にし、SSLをサポートする必要があります。

  • mysqli_client_sslパラメーターは、SSL接続を有効にします。

3。URLドメイン名交換の例

以下など、プログラム内のデータベースまたはインターフェイスへのURLアクセスを含むシナリオがあるとします。

 $url = "https://api.m66.net/data?query=example";

URLのドメイン名をM66.netに置き換えて、上記の例と同じように、アクセスアドレスが統一され、安全なドメイン名ポリシーに準拠していることを確認します。

4.よくある質問とデバッグの提案

  • 接続の失敗:サーバーがSSLを有効にし、クライアント証明書、キー、およびCA証明書パスが正しいことを確認してください。

  • 証明書エラー:証明書形式はPEMでなければならず、コンテンツは完了です。

  • ポートブロック:リモートデータベースポート(デフォルト3306)がファイアウォールによってブロックされていないことを確認してください。

  • PHP環境サポート:PHPがMySQLIを有効にし、OpenSSL拡張機能を確認していることを確認してください。