リモート MySQL/MariaDB データベースサーバへの接続を保護する
概要: Plesk に 1 つ以上のリモート MySQL/MariaDB データベースサーバを登録している場合、SSL/TLS 証明書を使用して、それらのサーバと Plesk の間の接続を保護することをお勧めします。これにより、機密情報が第三者によって傍受される可能性を防ぐことができます。
このトピックでは、SSL/TLS 証明書を使用して MySQL/MariaDB データベースサーバへの接続を保護する方法について説明します。
概要
このトピックにある手順を使用して、MySQL データベースサーバ、および MariaDB などの MySQL 派生製品への接続を保護することができます。
Plesk がローカルデータベースサーバのみを使用している場合、それらのサーバへの接続を保護する必要はありません。
データベースサーバへの接続は、自己署名 SSL/TLS 証明書または認証局から発行された無料または有料の証明書を使用して保護することができます。自己署名証明書により、Plesk とデータベースサーバの間の接続が暗号化されるため、ほとんどの場合はこれで十分です。ただし、認証局から発行された証明書(無料または有料)を使用すると、データベースサーバのアイデンティティを検証することもできるため、中間者攻撃からの保護に役立ちます。
リモート MySQL/MariaDB データベースサーバへの接続を保護する
リモートデータベースサーバへの接続を保護するプロセスには、2 つのステップがあります。まず、暗号化された接続を使用するように各リモートデータベースサーバを構成する必要があります。次に、Plesk でデータベースサーバへの暗号化接続を有効にする必要があります。
暗号化された接続を使用するようにデータベースサーバを設定するには、当該サーバのベンダーのドキュメントに記載された指示に従います。
上記の指示に従う場合、my.cnf
ファイルに以下のオプション行を追加してください。
require_secure_transport=ON
これは、暗号化された接続の使用をデータベースサーバに強制するためです。別の方法として、ALTER USER
ステートメントを使用して、次のようにデータベースユーザをユーザごとに更新することができます。
alter user 'admin'@'localhost' require ssl;
後者の場合、更新されたデータベースユーザへの接続のみが暗号化されます。
すべてのデータベースサーバで暗号化接続を使用するように設定したら、Plesk でデータベースサーバへの暗号化接続を有効にする必要があります。オプションとして、接続前にデータベースサーバのアイデンティティを検証するように Plesk を設定することもできます。これは、中間者攻撃から保護するために必要です。
データベースサーバへの暗号化接続を有効にする
-
ファイルに以下の行を追加して、データベースサーバへの暗号化接続を有効にします。
[database] tls.enable = true;
-
(オプション)接続前にデータベースサーバのアイデンティティを検証するために、先ほど追加した行の下に以下の行を追加します。
tls.verifyServerCert = true; tls.sslCA = <path to the .pem file containing the relevant X.509 certificate(s)>;
X.509 証明書は、
openssl
ユーティリティ(1 つ以上のデータベースサーバが自己署名証明書で保護されている場合)を介して生成するか、対応する認証局(1 つ以上のデータベースサーバが認証局から発行された証明書で保護されている場合)に要求することができます。注釈: データベースサーバのアイデンティティを検証してから接続するように Plesk が設定されている場合は、データベースサーバのホスト名と保護に使用されている SSL/TLS 証明書に指定されている名前が一致する必要があります。Plesk は、保護に使用されている SSL/TLS 証明書に指定されている名前とホスト名が一致しないデータベースサーバへの接続を拒否します。
これで MySQL/MariaDB データベースサーバと Plesk の間の接続が安全になり、第三者による傍受が不可能になりました。