ホームページ >データベース >mysql チュートリアル >MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
MySQL接続用のSSL/TLS暗号化を構成するには、次の手順に従ってください。
server-cert.pem
)、サーバーキー( server-key.pem
)、クライアント証明書( client-cert.pem
)、およびクライアントキー( client-key.pem
)が含まれます。これらのファイルは、MySQLサーバーのセキュアディレクトリに配置する必要があります。 MySQL Serverの構成:MySQL構成ファイル(オペレーティングシステムに応じてmy.cnf
またはmy.ini
)を編集します。 [mysqld]
セクションの下に次の行を追加または変更します。
<code>[mysqld] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/server-cert.pem ssl-key=/path/to/server-key.pem</code>
/path/to/
証明書が保存されている実際のパスに置き換えます。
サーバーSSL構成を確認します:MySQLに接続し、次のコマンドを実行して、サーバーがSSLを使用していることを確認します。
<code>SHOW VARIABLES LIKE 'have_ssl';</code>
出力にはYES
が表示されます。
MySQLクライアントの構成:クライアントが接続にSSLも使用することを確認するには、クライアント構成ファイルまたは実行時にSSLオプションを指定できます。たとえば、MySQLクライアント構成ファイル( my.cnf
またはmy.ini
)の[client]
セクションに次の行を追加できます。
<code>[client] ssl-ca=/path/to/ca-cert.pem ssl-cert=/path/to/client-cert.pem ssl-key=/path/to/client-key.pem</code>
テストSSL接続:クライアントを使用してMySQLサーバーに接続し、クライアント構成ファイルでまだ構成されていない場合はSSLオプションを指定します。コマンドを使用してください:
<code>mysql -h hostname -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem</code>
接続したら、実行してSSLステータスを確認できます。
<code>STATUS;</code>
出力には、 SSL: Cipher in use
が表示されます。
MySQLのSSL証明書を生成およびインストールするには、次の手順に従ってください。
証明書権限(CA)証明書を生成する証明書:OpenSSLを使用して、CA証明書とキーを作成します。次のコマンドを実行します。
<code>openssl genrsa 2048 > ca-key.pem openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem</code>
国名や組織名など、CAの詳細を入力するように求められます。
サーバー証明書とキーの生成:サーバー証明書リクエストを作成し、CAで署名します。
<code>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</code>
サーバー要求を生成するときは、 Common Name
MySQLサーバーのホスト名と一致するようにします。
クライアント証明書とキーを生成します。同様に、クライアント証明書リクエストを作成し、CAで署名します。
<code>openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem openssl rsa -in client-key.pem -out client-key.pem openssl x509 -req -in client-req.pem -days 3600 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 02 -out client-cert.pem</code>
/etc/mysql/ssl/
を使用する場合があります。my.ini
に、証明書my.cnf
使用するようにMySQLを構成します。はい、MySQL SSL/TLS暗号化に自己署名証明書を使用できます。ただし、考慮すべきいくつかのセキュリティへの影響があります。
SSL/TLS暗号化がMySQL接続のために正しく機能していることを確認するには、次の手順に従ってください。
MySQLサーバーの構成を確認します。MySQLサーバーに接続して実行します。
<code>SHOW VARIABLES LIKE 'have_ssl';</code>
出力にはYES
が表示され、SSLが有効になっていることを示します。
SSL接続ステータスの確認:MySQLサーバーに接続したら、実行します。
<code>STATUS;</code>
出力には、使用中の暗号を示すSSL
フィールドを含める必要があります。たとえば、 SSL: Cipher in use is TLS_AES_256_GCM_SHA384
。
SHOW STATUS
コマンドを使用します。次のコマンドを実行して、SSL接続に関する詳細情報を取得します。
<code>SHOW STATUS LIKE 'Ssl_cipher';</code>
これにより、現在の接続に使用されている暗号が表示されるはずです。
SSLオプションを使用してクライアント接続を確認してください。指定されたSSLオプションを使用してクライアントを使用してMySQLサーバーに接続します。
<code>mysql -h hostname -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem</code>
接続が成功するはずで、 STATUS
コマンドを使用してSSLステータスを確認できます。
SSL接続メトリックを監視:実行して、SSL接続メトリックを監視できます。
<code>SHOW GLOBAL STATUS LIKE 'Ssl%';</code>
このコマンドは、 Ssl_accepts
、 Ssl_accept_renegotiates
、 Ssl_client_connects
などのさまざまなSSL関連のステータス変数を提供します。
これらの手順に従うことにより、SSL/TLS暗号化が適切に構成され、MySQL接続用に機能するようにします。
以上がMySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。