18.3. クライアントでシリアル化を有効にする
前提条件
- サーバーのシリアル化がすでに有効になっている必要があります。
手順18.2 タスク
- 秘密鍵ストアから公開鍵証明書を作成します。(keytool -genkey -alias droolsKey -keyalg RSA -keystore を実行して、キーツールにアクセスできます。):
keytool -export -alias droolsKey -file droolsKey.crt -keystoreMyDroolsPrivateKeyStore.keystore Enter keystore password: Certificate stored in file <droolsKey.crtU> - 公開鍵証明書を公開鍵ストアにインポートします。(これは、クライアントアプリケーションによって使用される場所です):
keytool -import -alias droolsKey -file droolsKey.crt -keystoreMyPublicDroolsKeyStore.keystore Enter keystore password: Re-enter new password: Owner: CN=Test User, OU=Dev, O=XYZ Corporation, L=Brisbane, ST=QLD, C=AU Issuer: CN=Test User, OU=Dev, O=XYZ Corporation, L=Brisbane, ST=QLD, C=AU Serial number: 4ca0021b Valid from: Sun Sep 26 22:31:55 EDT 2010 until: Sat Dec 25 21:31:55 EST 2010 Certificate fingerprints: MD5: 31:1D:1B:98:59:CC:0E:3C:3F:57:01:C2:FE:F2:6D:C9 SHA1: 4C:26:52:CA:0A:92:CC:7A:86:04:50:53:80:94:2A:4F:82:6F:53:AD Signature algorithm name: SHA1withRSA Version: 3 Trust this certificate? [no]: yes Certificate was added to keystore - サーバー設定ファイルを開きます: vi grep drools jboss-as/server/default/deploy/properties-service.xml
- keystoredir と MyPublicDroolsKeyStore.keystore をキーストアディレクトリー、以前に作成した公開キーストアの名前と置き換えます。
# Drools Client Properties for Security Serialization drools.serialization.public.keyStoreURL=file://$keystoredir/MyPublicDroolsKeyStore.keystore drools.serialization.public.keyStorePwd=drools - ファイルを保存して終了します。
- JBoss Enterprise SOA Platform サーバーを再起動します。
- Java クライアントアプリケーションの場合は、コードでシステムプロパティーを次のように設定します。
// Set the client properties to deserialize the signed packages URL clientKeyStoreURL = getClass().getResource( "MyPublicDroolsKeyStore.keystore" ); System.setProperty( KeyStoreHelper.PROP_SIGN, "true" ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_URL, clientKeyStoreURL.toExternalForm() ); System.setProperty( KeyStoreHelper.PROP_PUB_KS_PWD, "drools" ); ...または、run.shシェルスクリプト (vi SOA_ROOT/jboss-as/bin/run.sh) スクリプトを開き、 JAVA_OPTS セクション:# Serialization Security Settings JAVA_OPTS="-Ddrools.serialization.sign=true $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.private.keyStoreURL=file://$keystoredir/MyDroolsKeyStore.keystore $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.private.keyStorePwd=drools $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.private.keyAlias=droolsKey $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.private.keyPwd=drools $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.public.keyStoreURL=file://$keystoredir/MyPublicDroolsKeyStore.keystore $JAVA_OPTS" JAVA_OPTS="-Ddrools.serialization.public.keyStorePwd=drools $JAVA_OPTS"上記の値を環境に固有の値に置き換えてから、サーバーインスタンスを再起動します。