読者です 読者をやめる 読者になる 読者になる

根暗シアン

備忘録という名の予防線

【JAVA】DeploymentRuleSetについてメモ

DeploymentRuleSetの設定でハマったのでメモ

最近のJava(7以降)ではセキュリティの関係で自己署名証明書(Self-signed certificate.いわゆるオレオレ証明書)で署名されたアプリケーションを実行することができません。

 

セキュリティ設定によりJavaアプリケーションがブロックされるのはなぜですか。

 

Java Web Startアプレットを実行しようとすると、実行がブロックされてしまいます。

Java7ではセキュリティのレベルを「中」に下げればそれでも実行できたのですが、8になって「高」または「最高」しか設定できなくなりました。

 

詳しい作り方はこちら(Deployment Rule Set

 

1.ruleset.xmlを作成

セキュリティによるブロックを回避したい対象をルールセットに記述する。

ホストを指定する方法と、自己署名証明書のSHA-256フィンガプリントを指定する方法の2つがあります。

 

①ホストを指定する方法

 

<ruleset version="1.0+">

  <rule>

    <id location="https://foo.bar.com" />

    <action permission="run" />

  </ rule>

  <rule>

 

    <id location="http://*.hoge.com" />

    <action permission="run" />

  </ rule>

</ ruleset>

 

今回はホスト名ではなくIPで指定したかったので、

http://192.168.128.1:9090/

みたいなを書き方をしたのですが、なぜかうまくいきませんでした。

IPアドレスは間違いないのにブロックされてしまいます。

IPアドレスだとダメなのか…?

 

そこで次の方法で試したところ、うまくいきました。

自己署名証明書のSHA-256フィンガプリントを指定する方法

(SHA-256ってなんて読むのが一般的なんだろう。ニゴロ?two fifty-six?)

 

<ruleset version="1.0+">

  <rule>

    <id>

      <certification="ABC…(中略)…XYZ" />

    </ id>

    <action permission="run" />

  </ rule>

</ ruleset>

 

■フィンガプリント(メッセージダイジェスト、ハッシュ値)の調べ方

コマンドプロンプト

    %JAVA_HOME%\bin\keytool -printcert -jarfile <myjar>.jar

として出力された内容のSHA-256で始まる行を探す

     SHA-256:AB:CD:(中略):WX:YZ

このフィンガプリントの、コロンを消したものを<certification=" に続けて書く

 

2.DeploymentRuleSet.jarの作成と署名

jarファイルの作成

jar cvf DeploymentRuleSet.jar ruleset.xml

 

DeploymentRuleSet.jarが作成されるので、これを署名する。

この署名は自己署名証明書ではだめ。

 

3.Deploymentフォルダに配置

2で作ったDeploymentRuleSet.jarをWindowディレクトリの下に置く。

C:\Windows\Sun\Java\Deploymentなど

MacLinuxの場合は/etc/.java/deployment)

 

Javaコントロールパネル→セキュリティタブ→アクティブなルールセットに作成したルールセットが表示されればOK

 

 

書く予定のこと

書きたいこと・勉強したいことメモ

 

うちの会社は技術習得を軽視している節があって、業務がこなせればそれでいいって雰囲気がある。ほんとに数人の技術力の高い人に仕事が集中している。

学習コストに見合うメリットがないのかもしれないんだけどさー。

将来に不安を感じたので、自分でなんとかしないとなー。