7

これを参考sslにして設定しようとしています。 最初の3つのステップを完了することはできますが、次のような4番目のステップで問題が発生します。mysql

GRANT ALL PRIVILEGES ON *.* TO 'ssluser'@'localhost' IDENTIFIED BY 'ssluser' REQUIRE SSL;
FLUSH PRIVILEGES;

次に、mysqlサーバーを再起動します。

を実行しようとするとmysql -ussluser -pssluser -P3306 --ssl-key="C:\Program Files\MySQL\MySQL Server 5.5\certs\ca-cert.pem"
次のエラーが表示されます。ユーザー'ssluser' @'localhost'のアクセスが拒否されました(パスワード:YESを使用)デフォルトのポートとして3306
を使用しています。

すでにGRANTステートメントを実行したときにアクセスが拒否されたと言う方法。

ご了承ください

  • でGRANTステートメントを使用mysql -ussluser -pssluser する前に実行し、に接続できました。REQUIRE SSLmysql

  • やってみるSHOW GRANTS FOR 'ssluser'@'localhost';

    GRANT ALL PRIVILEGES ON *.* TO \'ssluser\'@\'localhost\' IDENTIFIED BY PASSWORD \'*C56A6573BEE146CB8243543295FD80ADCE588EFF\' REQUIRE SSL WITH GRANT OPTION
    
  • GRANTステートメントを実行する前に、 ssluserを介してワークベンチに接続できました。しかし、今ではアクセスを拒否するというエラーが発生しました。

  • 使うshow global variables like 'have_%ssl';

    have_openssl DISABLED have_ssl DISABLED

  • SHOW STATUS LIKE 'Ssl_cipher';これを使うと

    Ssl_cipher _________

  • すべてのサーバーとクライアントの証明書を作成し、ルートディレクトリcerts内のディレクトリに配置しました。mysql server

数日から試していますが、何も見つかりませんでした。助けていただければ幸いです。

私はこれを初めてやっています。誰かがこれを行うための詳細な手順を案内してくれますか?

4

1 に答える 1

8

私は今日、同様のエラー メッセージに悩まされていましたが、これが私が発見したものです。

  1. GRANT の「REQUIRE SSL」オプションは、接続に SSL のみを必要とし、クライアント側の証明書を提供する必要はありません。
  2. mysql CLI は、期待どおりに SSL を処理しません。たとえば、MySQL 5.5 では、この--sslオプションは実際には SSL トランスポートを有効にしていないようです。
  3. --ssl-cipher=DHE-RSA-AES256-SHA:AES128-SHAmysql クライアントで実際に SSL を使用し、クライアントとの認証を許可する オプションを追加する必要がありました。

新しいユーザーをセットアップするために使用した正確な手順は次のとおりです。

CREATE USER 'ssl-user'@'%' identified by '<password>';
GRANT USAGE ON *.* TO 'ssl-user'@'%' identified by '<password>' REQUIRE SSL;
GRANT ALL PRIVILEGES ON `your-database`.* TO 'ssl-user'@'%';
于 2014-01-29T16:11:47.320 に答える