web-dev-qa-db-ja.com

JavaデプロイメントRuleset.xmlが機能しない

最近のタイムカードシステムのアップグレードにより、すべてのワークステーションをJava 7u51(6u45でした)にアップグレードする必要がありました。現在のビジネスに不可欠な別のJavaベースのアプリケーションがあります。一定のセキュリティ警告をスローします。すべてのユーザーは、少なくとも1日に12回[実行]をクリックする必要があります(ベンダーのコードは署名されておらず、発行元の情報もありません)。これは受け入れられません。

私の知る限り、これを解決する唯一の方法は、展開ルールセットを使用することです。私はこれを行う方法を説明するたくさんの記事をグーグルで検索しました。それらはすべて少し異なり、どれも機能しません。 XMLファイルを作成し、Jarを作成し、自己署名証明書を使用して署名し、その証明書をいくつかのテストマシンの信頼できるCAにインポートしました。私が何をしても、アクセスするすべてのJava対応サイト(特にホワイトリストに登録したサイトを含む)で次のエラーが表示されます。

"展開ルールセットによってブロックされたアプリケーション"
自己署名されたデプロイメントルールセットjarを検証できません。

オラクルが近年Javaを誤って処理したことに完全に腹を立てています。私は次々と障害に悩まされているため、このロールアウトに200時間以上を費やしました。ユーザーは電話をかけています欲求不満のヘルプデスクと絶え間ないセキュリティ警告は、組織の時間とお金を犠牲にしています。

とにかく、十分な怒り。誰かが私が何をしているのか教えてくれるなら、間違ったことをしていただければ幸いです。

これが私が取った正確なステップです:
1)JDK 7u51をダウンロードしてインストールしました(keytool.exeおよびjarsigner.exeに必要)

2)次のruleset.xmlファイルを作成しました。

<ruleset version="1.0+">
    <rule>
        <id location="*.ourdomain.com" />
        <action permission="run" />
    </rule>

    <rule>
        <id />
            <action permission="default" />
    </rule>
</ruleset>

3)次のコマンドを使用してXMLファイルをパッケージ化しました。

jar.exe -cvf DeploymentRuleSet.jar ruleset.xml

4)次のようにkeytool.exeコマンドを使用して50年の2048ビットRSA自己署名証明書を作成しました:( DN情報の入力を求めます。証明書のパスワードはキーストアのパスワードと同じです)

keytool.exe -genkey -alias SelfSigned -keystore "SelfSigned.jks" -keyalg RSA -keysize 2048 -startdate "2000/01/01 00:00:00" -validity 18262

5)次のコマンドで作成した証明書をエクスポートしました。

keytool.exe -export -file "SelfSigned.cer" -alias SelfSigned -keystore "SelfSigned.jks"

6)次のコマンドを使用して、手順3で作成したJARファイルに署名しました。

jarsigner.exe -keystore "SelfSigned.jks" -signedjar "DeploymentRuleSet.jar" DeploymentRuleSet.jar SelfSigned

7)C:\ Windows\Sun\Java\Deploymentフォルダーを作成し、DeploymentRuleSet.jarファイルをそのフォルダーにコピーしました。 Javaコントロールパネルを介して、ルールセットが適用されており、証明書が有効であることを確認しました。

8)手順5でエクスポートした証明書をインポートしました。ここで手順から逸脱しました。 keytool.exeを使用して証明書をインポートできませんでした。 このページ ユーザーtrusted.certsストアにパスワードがなく、システムcacertsのパスワードが「changeit」であることを示しています。どちらも機能しなかったため、JavaコントロールパネルのGUIを使用して、ユーザーの信頼できる証明書ストアにインポートしました。

1
Wes Sayeed

Windowsの場合:Javaコントロールパネルアプレットのユーザー信頼できる証明書ストアに証明書をインポートしませんでした。Windowscertificates.mmcコンピューターアカウントにインポートし、信頼されたルート証明の下に保存しました。当局。これを行うためのポリシーを使用しています。

1
Larry