Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


6.3.10.4 SSL コマンドのオプション

このセクションでは、SSL を使用するかどうかを指定するオプションと、SSL 証明書および鍵ファイルの名前を指定するオプションについて説明します。これらのオプションは、コマンド行またはオプションファイルで指定できます。MySQL が SSL サポートを使用して構築されていない場合は、これらを使用できません。セクション6.3.10.2「SSL を使用するための MySQL の構成」を参照してください。推奨される使用例および接続がセキュアであるかどうかをチェックする方法については、セクション6.3.10.3「SSL 接続の使用」を参照してください。

表 6.16 SSL オプション/変数のサマリー

名前 コマンド行 オプションファイル システム変数 ステータス変数 変数スコープ 動的
have_openssl     はい   グローバル いいえ
have_ssl     はい   グローバル いいえ
skip-ssl はい はい        
ssl はい はい        
ssl-ca はい はい     グローバル いいえ
- 変数: ssl_ca     はい   グローバル いいえ
ssl-capath はい はい     グローバル いいえ
- 変数: ssl_capath     はい   グローバル いいえ
ssl-cert はい はい     グローバル いいえ
- 変数: ssl_cert     はい   グローバル いいえ
ssl-cipher はい はい     グローバル いいえ
- 変数: ssl_cipher     はい   グローバル いいえ
ssl-crl はい はい     グローバル いいえ
- 変数: ssl_crl     はい   グローバル いいえ
ssl-crlpath はい はい     グローバル いいえ
- 変数: ssl_crlpath     はい   グローバル いいえ
ssl-key はい はい     グローバル いいえ
- 変数: ssl_key     はい   グローバル いいえ

  • --ssl

    サーバーに対して、このオプションを指定すると、サーバーで SSL 接続が許可されますが、必須にはなりません。

    クライアントプログラムに対して、このオプションを指定すると、SSL を使用してサーバーに接続することがクライアントに許可されますが、必須にはなりません。したがって、このオプションだけでは、SSL 接続を使用させるのに十分ではありません。たとえば、このオプションをクライアントプログラムに対して指定するが、サーバーは SSL 接続が許可されるよう構成されていない場合は、暗号化されていない接続が使用されます。

    SSL 接続を有効にするための推奨される SSL オプションセットとして、サーバー側で少なくとも --ssl-cert--ssl-key を使用し、クライアント側で --ssl-ca を使用します。セクション6.3.10.3「SSL 接続の使用」を参照してください。

    その他の --ssl-xxx オプションに関する説明で示したように、これらのオプションによって、--ssl が暗黙的に指定されている可能性があります。

    --ssl オプションをネストされた形式で指定すると、その他の SSL をオーバーライドし、SSL が使用されないように指定できます。これを行うには、--ssl=0 またはシノニム (--skip-ssl--disable-ssl) としてオプションを指定します。たとえば、MySQL クライアントプログラムを呼び出し時にデフォルトで SSL 接続が使用されるように、SSL オプションをオプションファイルの [client] グループに指定することがあります。代わりに、暗号化されていない接続を使用するには、コマンド行で --skip-ssl を指定してクライアントプログラムを呼び出して、オプションファイルのオプションをオーバーライドします。

    MySQL アカウントに対して SSL 接続の使用を要求にするには、そのアカウントに対して、少なくとも REQUIRE SSL 句を含む GRANT ステートメントを発行します。MySQL で SSL 接続がサポートされ、サーバーとクライアントが適切な SSL オプションを付けて起動されていない場合は、アカウントの接続が拒否されます。

    REQUIRE 句は、その他の SSL 関連のオプションを許可します。これを使用すれば、REQUIRE SSL よりも厳密な要件を強制的に適用できます。さまざまな REQUIRE オプションを使用して構成されているアカウントを使用して接続するクライアントが、どの SSL コマンドオプションを指定する可能性があるのか、またはどのオプションを指定する必要があるのかについての詳細は、セクション13.7.1.4「GRANT 構文」REQUIRE の説明を参照してください。

  • --ssl-ca=file_name

    信頼できる SSL 証明書認証局のリストを含む PEM 形式のファイルへのパス。このオプションは、暗黙的に --ssl を示します。

    クライアント接続を確立する際に SSL を使用して、サーバー証明書を認証しないようにクライアントに指示する場合は、--ssl-ca--ssl-capath も指定しません。サーバーは引き続き、クライアントアカウントに対して GRANT ステートメントを使用して確立された適用可能な要件に応じてクライアントを検証し、サーバーの起動時に指定された --ssl-ca または --ssl-capath オプションの値を使用します。

  • --ssl-capath=dir_name

    PEM 形式の信頼できる SSL 認証機関証明書を含むディレクトリへのパス。このオプションは、暗黙的に --ssl を示します。

    クライアント接続を確立する際に SSL を使用して、サーバー証明書を認証しないようにクライアントに指示する場合は、--ssl-ca--ssl-capath も指定しません。サーバーは引き続き、クライアントアカウントに対して GRANT ステートメントを使用して確立された適用可能な要件に応じてクライアントを検証し、サーバーの起動時に指定された --ssl-ca または --ssl-capath オプションの値を使用します。

    OpenSSL サポートを使用して構築された MySQL 配布では、--ssl-capath オプションがサポートされています。yaSSL は、どのディレクトリにも表示されず、チェーン証明書ツリーをたどらないため、yaSSL を使用して構築された配布ではサポートされません。yaSSL では、CA 証明書ツリーのコンポーネントをすべて単一の CA 証明書ツリー内に含め、そのファイル内の各証明書は一意の SubjectName 値を持つ必要があります。このような yaSSL の制限を回避するには、証明書ツリーを構成する個々の証明書ファイルを新しいファイルに連結し、そのファイルを --ssl-ca オプションの値として指定します。

  • --ssl-cert=file_name

    セキュアな接続を確立する際に使用される PEM 形式の SSL 証明書ファイルの名前。このオプションは、暗黙的に --ssl を示します。

  • --ssl-cipher=cipher_list

    SSL 暗号化に使用する許可されている暗号のリスト。リスト内の暗号がサポートされていない場合は、SSL 接続が機能しません。このオプションは、暗黙的に --ssl を示します。

    移植性を最大にするには、cipher_list をコロンで区切った 1 つ以上の暗号名のリストで指定するようにしてください。この形式は、OpenSSL と yaSSL の両方で認識されます。例:

    --ssl-cipher=AES128-SHA
    --ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHA
    

    http://www.openssl.org/docs/apps/ciphers.html にある OpenSSL のドキュメントで説明されているように、OpenSSL では、暗号を指定するためのより柔軟な構文がサポートされています。ただし、yaSSL ではサポートされてないため、yaSSL を使用して構築された MySQL 配布で拡張構文の使用を試みると失敗します。

    OpenSSL では、サーバーがリンクされているバージョンによって、サポートされている暗号が異なる場合があります。たとえば、リストには次の暗号が含まれている可能性があります。

    AES256-GCM-SHA384
    AES256-SHA
    AES256-SHA256
    CAMELLIA256-SHA
    DES-CBC3-SHA
    DHE-DSS-AES256-GCM-SHA384
    DHE-DSS-AES256-SHA
    DHE-DSS-AES256-SHA256
    DHE-DSS-CAMELLIA256-SHA
    DHE-RSA-AES256-GCM-SHA384
    DHE-RSA-AES256-SHA
    DHE-RSA-AES256-SHA256
    DHE-RSA-CAMELLIA256-SHA
    ECDH-ECDSA-AES256-GCM-SHA384
    ECDH-ECDSA-AES256-SHA
    ECDH-ECDSA-AES256-SHA384
    ECDH-ECDSA-DES-CBC3-SHA
    ECDH-RSA-AES256-GCM-SHA384
    ECDH-RSA-AES256-SHA
    ECDH-RSA-AES256-SHA384
    ECDH-RSA-DES-CBC3-SHA
    ECDHE-ECDSA-AES128-GCM-SHA256
    ECDHE-ECDSA-AES128-SHA
    ECDHE-ECDSA-AES128-SHA256
    ECDHE-ECDSA-AES256-GCM-SHA384
    ECDHE-ECDSA-AES256-SHA
    ECDHE-ECDSA-AES256-SHA384
    ECDHE-ECDSA-DES-CBC3-SHA
    ECDHE-RSA-AES128-GCM-SHA256
    ECDHE-RSA-AES128-SHA
    ECDHE-RSA-AES128-SHA256
    ECDHE-RSA-AES256-GCM-SHA384
    ECDHE-RSA-AES256-SHA
    ECDHE-RSA-AES256-SHA384
    ECDHE-RSA-DES-CBC3-SHA
    EDH-DSS-DES-CBC3-SHA
    EDH-RSA-DES-CBC3-SHA
    PSK-3DES-EDE-CBC-SHA
    PSK-AES256-CBC-SHA
    SRP-DSS-3DES-EDE-CBC-SHA
    SRP-DSS-AES-128-CBC-SHA
    SRP-DSS-AES-256-CBC-SHA
    SRP-RSA-3DES-EDE-CBC-SHA
    SRP-RSA-AES-128-CBC-S
    SRP-RSA-AES-256-CBC-SHA
    

    yaSSL では、次の暗号がサポートされています。

    AES128-RMD
    AES128-SHA
    AES256-RMD
    AES256-SHA
    DES-CBC-SHA
    DES-CBC3-RMD
    DES-CBC3-SHA
    DHE-RSA-AES128-RMD
    DHE-RSA-AES128-SHA
    DHE-RSA-AES256-RMD
    DHE-RSA-AES256-SHA
    DHE-RSA-DES-CBC3-RMD
    EDH-RSA-DES-CBC-SHA
    EDH-RSA-DES-CBC3-SHA
    RC4-MD5
    RC4-SHA
    

    特定のサーバーでサポートされている暗号を正確に確認するには、次のクエリーを使用して Ssl_cipher_list ステータス変数の値をチェックします。

    SHOW STATUS LIKE 'Ssl_cipher_list';
    
  • --ssl-crl=file_name

    証明書失効リストを含む PEM 形式のファイルへのパス。このオプションは、暗黙的に --ssl を示します。

    --ssl-crl--ssl-crlpath も指定されていない場合は、CA パスに証明書失効リストが含まれていても、CRL チェックが実行されません。

    OpenSSL を使用して構築された MySQL 配布では、--ssl-crl オプションがサポートされています。yaSSL では証明書失効リストが機能しないため、yaSSL を使用して構築された配布ではサポートされません。

    このオプションは MySQL 5.6.3 で追加されました。

  • --ssl-crlpath=dir_name

    証明書失効リストを含む PEM 形式のファイルが含まれるディレクトリへのパス。このオプションは、暗黙的に --ssl を示します。

    --ssl-crl--ssl-crlpath も指定されていない場合は、CA パスに証明書失効リストが含まれていても、CRL チェックが実行されません。

    OpenSSL を使用して構築された MySQL 配布では、--ssl-crlpath オプションがサポートされています。yaSSL では証明書失効リストが機能しないため、yaSSL を使用して構築された配布ではサポートされません。

    このオプションは MySQL 5.6.3 で追加されました。

  • --ssl-key=file_name

    セキュアな接続を確立する際に使用される PEM 形式の SSL 鍵ファイルの名前。このオプションは、暗黙的に --ssl を示します。

    MySQL 配布が OpenSSL または (MySQL 5.6.3 時点の) yaSSL を使用して構築され、鍵ファイルがパスフレーズで保護されている場合は、プログラムからパスフレーズを求めるプロンプトがユーザーに表示されます。パスワードは対話形式で指定する必要があり、ファイルには格納できません。パスフレーズが正しくない場合は、鍵を読み取ることができない場合と同様に、プログラムが続行されます。MySQL 5.6.3 よりも前では、MySQL 配布が yaSSL を使用して構築され、鍵ファイルがパスフレーズで保護されている場合は、エラーが発生します。

  • --ssl-verify-server-cert

    このオプションはクライアントプログラムでのみ使用でき、サーバーでは使用できません。これにより、サーバーがクライアントに送信する証明書内のサーバーの Common Name 値がクライアントによってチェックされます。クライアントは、サーバーへの接続時にクライアントで使用されるホスト名と照合してその名前を検証し、一致が見つからない場合は接続に失敗します。この機能は、中間者攻撃を防ぐために使用できます。検証はデフォルトで無効になっています。


User Comments
Sign Up Login You must be logged in to post a comment.