4

MySQL(Community Server、5.1)データベースサーバーをセットアップしました。

SSLを設定したり、証明書を作成したりしました。

REQUIRESX509属性を持つユーザーを作成しました。

コマンドラインクライアント「mysql」を使用してこのユーザーを使用して接続でき、「status」コマンドはSSLがアクティブであることを示します。

証明書をJavaトラストストア/キーストアファイルにインポートすることについて、MySQLサイトの指示に正確に従いました。

これらを使用してデータベースに接続することはできません。

REQUIRES SSLを使用するユーザーを使用してトラストストアファイルのみを使用する場合は、すべて問題ありません。REQUIRES X509を使用しているユーザーでキーストアファイルを使用しても、キーストアファイルがありません。

これに苦労している人々のウェブ上には多くの証拠があり、多くの答えはないようです。誰かが実際にこれを機能させましたか?

4

1 に答える 1

13

ページの下部にある私のコメントに、ここにリストされているクラック: http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-using-ssl.html

これを行うのに文字通り1週間費やした後、最終的にクライアント証明書を使用して接続することができました(ユーザー定義でX509が必要です)!!!!

rem NOTE: these commands are run using the Java 6 (1.6) JDK as it requires the "-importkeystore" command
rem which is not available before this JDK version.

rem Import the self signed Certifacte Authority certificate into a keystore.
keytool -import -alias mysqlCACert -file ca-cert.pem -keystore truststore -storepass truststore
rem Shows only the signed certificate.
keytool -v -list -keystore truststore -storepass truststore

rem Create a PKCS12 file from an existing signed client certifcate and its private key.
rem set password to "keystore".
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12 -name clientalias -CAfile ca-cert.pem -caname root
rem Import the combined certificate and private key into the keystore.
keytool -importkeystore -deststorepass keystore -destkeystore keystore -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass keystore -alias clientalias

次に、信頼できる証明書ファイル (トラストストア) とクライアント証明書/キー ファイル (キーストア) を、接続 URL、JVM 起動パラメータ引数 (-D=,...)、または Java アプリケーションで指定します。 System.setProperty(var,val),...

それは実際に動作します!!!

于 2012-07-23T20:11:09.350 に答える