MySQL SSL 接続手順の詳細な説明
MySQL は、SSL (Secure Sockets Layer、Secure Sockets Layer) をサポートする一般的に使用されるリレーショナル データベース管理システムです。安全な接続を確立します。データベースに。データ送信を保護する必要がある一部のアプリケーション シナリオでは、SSL 接続の使用は非常に重要なセキュリティ対策です。この記事では、MySQL SSL 接続の手順を詳しく説明し、対応するコード例を示します。
1. SSL 証明書と秘密キーの生成
SSL 接続を使用する前に、証明書と秘密キーを生成する必要があります。次の手順で SSL 証明書と秘密キーを生成できます。
次のコマンドを実行して CA (認証局) 証明書と秘密キーを生成します:
openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem
次のコマンドを実行してサーバー証明書と秘密キーを生成しますkey:
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem openssl rsa -in server-key.pem -out server-key.pem openssl x509 -req -in server-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
2. MySQL サーバーの設定
MySQL サーバーで SSL 接続を確立する前に、対応する設定を実行する必要があります。 MySQL 構成ファイル (my.cnf) を開いて、次の構成を追加できます。
[mysqld] ssl-ca=ca-cert.pem ssl-cert=server-cert.pem ssl-key=server-key.pem
上記の構成内のファイル名を実際の証明書と秘密キーのファイル名に置き換えて、これらのファイルが正しく設定されていることを確認してください。指定された場所に正しく保存されています。構成が完了したら、MySQL サーバーを再起動します。
3. MySQL データベースへの接続
クライアントが MySQL データベースに接続するときは、SSL 接続オプションを指定する必要があります。接続文字列に次のオプションを追加できます:
--ssl-ca=ca-cert.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem --ssl-cipher=DHE-RSA-AES256-SHA
where --ssl-ca
、--ssl-cert
、および --ssl- key
は、クライアントが使用する CA 証明書、クライアント証明書、およびクライアント秘密キーをそれぞれ指定します。 --ssl-cipher
を使用して SSL 暗号化アルゴリズムを指定できます。この例では DHE-RSA-AES256-SHA を使用しています。
以下は、PHP を使用して MySQL データベースに接続するためのサンプル コードです:
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "database"; $ca_cert = "/path/to/ca-cert.pem"; $client_cert = "/path/to/client-cert.pem"; $client_key = "/path/to/client-key.pem"; $mysqli = new mysqli($servername, $username, $password, $dbname, null, null, MYSQLI_CLIENT_SSL); $mysqli->ssl_set($client_key, $client_cert, $ca_cert, null, null); if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } echo "Connected successfully"; $mysqli->close(); ?>
$servername
, $username
, # を変更してください。 ##$password と
$dbname を実際の接続情報に置き換え、
$ca_cert、
$client_cert、
$client_key を次の情報に置き換えます。実際の証明書と秘密キーへのファイル パス。接続に成功すると、「接続に成功しました」と出力されます。
以上がMySQL SSL接続手順の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。