MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  mysql_ssl_rsa_setup — SSL/RSA ファイルの作成

4.4.3 mysql_ssl_rsa_setup — SSL/RSA ファイルの作成

このプログラムは、SSL を使用したセキュアな接続をサポートするために必要な SSL 証明書およびキーファイルと RSA キーペアファイル、および暗号化されていない接続を介した RSA を使用したセキュアなパスワード交換を作成します (それらのファイルがない場合)。既存の SSL ファイルの有効期限が切れている場合、mysql_ssl_rsa_setup を使用して新しい SSL ファイルを作成することもできます。

注記

mysql_ssl_rsa_setup では openssl コマンドが使用されるため、その使用はマシンに OpenSSL がインストールされている必要があります。

OpenSSL を使用してコンパイルされた MySQL ディストリビューションの SSL および RSA ファイルを生成する別の方法は、サーバーで自動的に生成することです。 セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」を参照してください。

重要

mysql_ssl_rsa_setup では、必要なファイルの生成が容易になるため、SSL の使用によるバリアの削減に役立ちます。 ただし、mysql_ssl_rsa_setup によって生成される証明書は自己署名付きであり、これはあまりセキュアではありません。 mysql_ssl_rsa_setup によって作成されたファイルの使用経験がある場合は、登録された認証局から CA 証明書を取得することを検討してください。

次のように mysql_ssl_rsa_setup を起動します:

shell> mysql_ssl_rsa_setup [options]

一般的なオプションは、ファイルを作成する場所を指定する --datadir と、mysql_ssl_rsa_setup が実行する openssl コマンドを表示する --verbose です。

mysql_ssl_rsa_setup は、デフォルトのファイル名セットを使用して SSL および RSA ファイルの作成を試みます。 これは次のように機能します:

  1. mysql_ssl_rsa_setup は、PATH 環境変数で指定された場所で openssl バイナリをチェックします。 openssl が見つからない場合、mysql_ssl_rsa_setup は何も行いません。 openssl が存在する場合、mysql_ssl_rsa_setup--datadir オプションで指定された MySQL データディレクトリ、または --datadir オプションが指定されていない場合はコンパイル済みデータディレクトリ内でデフォルトの SSL および RSA ファイルを検索します。

  2. mysql_ssl_rsa_setup は、次の名前の SSL ファイルのデータディレクトリをチェックします:

    ca.pem
    server-cert.pem
    server-key.pem
  3. これらのファイルのいずれかが存在する場合、mysql_ssl_rsa_setup は SSL ファイルを作成しません。 それ以外の場合は、openssl を起動して作成し、さらにいくつかの追加ファイルを作成します:

    ca.pem               Self-signed CA certificate
    ca-key.pem           CA private key
    server-cert.pem      Server certificate
    server-key.pem       Server private key
    client-cert.pem      Client certificate
    client-key.pem       Client private key

    これらのファイルにより、SSL を使用したセキュアなクライアント接続が可能になります。セクション6.3.1「暗号化接続を使用するための MySQL の構成」 を参照してください。

  4. mysql_ssl_rsa_setup は、RSA ファイルのデータディレクトリを次の名前でチェックします:

    private_key.pem      Private member of private/public key pair
    public_key.pem       Public member of private/public key pair
  5. これらのファイルのいずれかが存在する場合、mysql_ssl_rsa_setup は RSA ファイルを作成しません。 それ以外の場合は、openssl を起動して作成します。 これらのファイルを使用すると、sha256_password または caching_sha2_password プラグインによって認証されたアカウントに対して RSA over unencrypted 接続を使用したセキュアなパスワード交換が可能になります。セクション6.4.1.3「SHA-256 プラガブル認証」 および セクション6.4.1.2「SHA-2 プラガブル認証のキャッシュ」 を参照してください。

mysql_ssl_rsa_setup によって作成されるファイルの特性の詳細は、セクション6.3.3.1「MySQL を使用した SSL および RSA 証明書とキーの作成」 を参照してください。

起動時に、--ssl 以外の明示的な SSL オプションが指定されていない場合 (おそらく ssl_cipher とともに)、MySQL サーバーは mysql_ssl_rsa_setup によって作成された SSL ファイルを自動的に使用して SSL を有効にします。 ファイルを明示的に指定する場合は、起動時に --ssl-ca--ssl-cert および --ssl-key オプションを使用してクライアントを起動し、ca.pemserver-cert.pem および server-key.pem ファイルにそれぞれ名前を付けます。

また、明示的な RSA オプションが指定されていない場合、サーバーは mysql_ssl_rsa_setup によって作成された RSA ファイルを自動的に使用して RSA を有効にします。

サーバーで SSL が有効になっている場合、クライアントはデフォルトで SSL を使用して接続します。 証明書ファイルとキーファイルを明示的に指定するには、--ssl-ca--ssl-cert および --ssl-key オプションを使用して、ca.pemclient-cert.pem および client-key.pem ファイルにそれぞれ名前を付けます。 ただし、mysql_ssl_rsa_setup ではデフォルトでこれらのファイルがデータディレクトリに作成されるため、最初に追加のクライアント設定が必要になる場合があります。 データディレクトリのアクセス権は通常、MySQL サーバーを実行しているシステムアカウントへのアクセスのみを有効にするため、クライアントプログラムはそこにあるファイルを使用できません。 ファイルを使用可能にするには、クライアントから読取り可能な (書込み可能ではない) ディレクトリにファイルをコピーします:

  • ローカルクライアントの場合は、MySQL インストールディレクトリを使用できます。 たとえば、データディレクトリがインストールディレクトリのサブディレクトリで、現在の場所がデータディレクトリである場合は、次のようにファイルをコピーできます:

    cp ca.pem client-cert.pem client-key.pem ..
  • リモートクライアントの場合、転送中に改ざんされないように、セキュアなチャネルを使用してファイルを配布します。

MySQL インストールに使用される SSL ファイルの有効期限が切れている場合は、mysql_ssl_rsa_setup を使用して新しい SSL ファイルを作成できます:

  1. サーバーを停止します。

  2. 既存の SSL ファイルの名前を変更するか、削除します。 最初にそれらのバックアップを作成することをお薦めします。 (RSA ファイルは期限切れにならないため、削除する必要はありません。mysql_ssl_rsa_setup では、それらが存在し、上書きされないことを確認できます。)

  3. --datadir オプションを指定して mysql_ssl_rsa_setup を実行し、新しいファイルを作成する場所を指定します。

  4. サーバーを再起動します。

mysql_ssl_rsa_setup では、次のコマンドラインオプションがサポートされています。これらのオプションは、コマンドラインまたはオプションファイルの[mysql_ssl_rsa_setup]および[mysqld]グループで指定できます。 MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.2.2「オプションファイルの使用」を参照してください。

表 4.9 「mysql_ssl_rsa_setup オプション」

オプション名 説明
--datadir データディレクトリへのパス
--help ヘルプメッセージを表示して終了
--suffix X.509 証明書共通名属性の接尾辞
--uid ファイル権限に使用する有効なユーザーの名前
--verbose 冗長モード
--version バージョン情報を表示して終了

  • --help, ?

    ヘルプメッセージを表示して終了します。

  • --datadir=dir_name

    mysql_ssl_rsa_setup がデフォルトの SSL および RSA ファイルをチェックするディレクトリへのパス。ファイルがない場合は、そこにファイルを作成する必要があります。 デフォルトは、コンパイルされたデータディレクトリです。

  • --suffix=str

    X.509 証明書の共通名属性の接尾辞。 接尾辞の値は 17 文字に制限されています。 デフォルトは、MySQL のバージョン番号に基づきます。

  • --uid=name, -v

    作成されたファイルの所有者である必要があるユーザーの名前。 値はユーザー名であり、数値のユーザー ID ではありません。 このオプションが指定されていない場合、mysql_ssl_rsa_setup によって作成されたファイルは、それを実行するユーザーが所有します。 このオプションは、chown() システムコールをサポートするシステムで root としてプログラムを実行する場合にのみ有効です。

  • --verbose, -v

    冗長モード。 プログラムの動作についてより多くの出力を生成します。 たとえば、プログラムは実行する openssl コマンドを示し、いくつかのデフォルトファイルがすでに存在するため、SSL または RSA ファイルの作成をスキップするかどうかを示す出力を生成します。

  • --version, -V

    バージョン情報を表示して終了します。


関連キーワード:  setup, 作成, プログラム, pem, サーバー, key, ディレクトリ, 接続, 表示, 起動