弾き語って御免

ギターコードツール (Guitar Chord Tools) 掲示板

カテゴリ: 技術情報

久しぶりに Chrome で Keytrans を使おうとしたところ、「This site uses a plugin (Java(TM)) that is unsupported.」なるタブメッセージが。そのメッセージの右端の[詳しく見る]を押すと以下のようなメッセージが。

NPAPI のサポートの終了

Silverlight、Java、Unity など NPAPI を使用しているプラグインは動作しなくなります。

うむむ。Chrome、お前もか!

一応、現時点の Chrome(Version 43.0.2357.124 m) では NPAPI を有効にする方法があるようです。
  1. Chrome を起動します。
  2. 画面上部のアドレスバーに「chrome://flags/#enable-npapi」と入力します。
  3. 表示されるウィンドウで、[NPAPI を有効にする] の下の [有効にする] をクリックします。
  4. Chrome を再起動します。
こうすれば GuitarChordTools のような JavaApplet が動きます。これらの詳細はこちらをご覧ください。

尚、Google は、Chrome について2015年後半までに NPAPI を完全に廃止する予定らしい…。

嗚呼、JavaApplet。たそがれ時であります。先日たそがれたばかりなのに。

そのうち、GuitarChordToolsでも「Chrome非対応」を告知することになりそうです。FireFox あたりには対応を続けてくれることを期待するのみです。

Windows10 から標準で搭載される新しいWebブラウザ「Microsoft Edge」ですが、どうも Java(Applet) には対応しない模様です。

Microsoft Edge Dev Blogには、”not supported”として AciveX や VBScript がリストアップされており、その中に Java(Applet) のようなものはありません。しかし、CNETのような情報サイトには、「Oracle's Java and Microsoft's own Silverlight」のような文言が追加されています。

そもそも、この Microsoft Edge。ぐだぐだになった Internet Explorer の後継であり、過去の技術の互換性を捨てて「現代的なウェブ標準に対応した軽量なウェブブラウザ」を目指しているものらしい。

そのため、Microsoft として自社のActiveX、VBScript、Silverlight(私はどれもよく知りませんが) 等々を捨てるぐらいですから、JavaApplet については「言わずもがな」といったところなのでしょう。実際、困る人も少ない、ということで。

嗚呼、JavaApplet。たそがれ時であります。

そのうち、GuitarChordToolsでも「Microsoft Edge非対応」を告知することになりそうです。Chrome、FireFox あたりには対応を続けてくれることを期待するのみです。

Javaがまたバージョンアップ(Version7 Update51)したようです。それで前回の記事で危惧した通り、そのバージョンアップしたJavaをインストールしても、KeytransやChordnaviといった署名がないJavaアプレットはブロックされて動かないようです。しかし、回避策もあります。以降に動かない状況とその回避策を示します。

■1.まずはJavaをバージョンアップ(Version7 Update51)せずにアプレットを実行してみる

以下の「セキュリティ設定によってブロックされたアプリケーション:期限切れバージョンのJava...」のウインドウが現れ、アプレットは起動できません。
java-sec-block1


■2.Javaをバージョンアップ(Version7 Update51)する

http://www.java.com/getjava からJava(JRE)をインストールします。現時点では最新のVersion7 Update51となるはずです。

■3.無署名アプレットを実行する

Keytransを起動してみます。そうすると、以下の「セキュリティ設定によってブロックされたアプリケーション:信頼できないアプリケーションの実行がブロックされています...」のウインドウが現れ、無署名アプレットは起動できません。
java-sec-block2


これですね。ついにやってくれました…。ただ回避策があるので、以下に示します。

■4.Javaのセキュリティ設定の変更

  1. [スタート] - [コントロールパネル] - [プログラム] を開きます。

  2. [Java]アイコンをクリックして、Javaコントロール・パネルを開きます。

  3. Javaコントロールパネルの[セキュリティ]タブを設定します。


    1. 古いJavaコントロールパネルの[セキュリティ]タブの場合

    2. [セキュリティレベル]を[中]にします。
      java-conpane


    3. 新しいJavaコントロールパネルの[セキュリティ]タブの場合

    4. [例外サイト・リスト]にJavaアプレットのURLを登録します。
      GuitarChordToolsのKeytransやChordnaviの場合、

      http://www1.bbiq.jp/wibu/
      http://www1.bbiq.jp/~wibu/

      の二つを登録します。以下のようになります。
      java-sec-new




■5.無署名アプレットを実行する

Keytransを起動してみます。そうすると一旦以下のセキュリティ警告ウインドウが出ます。「まだ出ますか!」という感じです。「署名されていないアプリケーションは安全ではない...」といった文言も非常に気に障りますが...。
java-sec-warn


ここで上の「実行(R)」を押すと、KeytransChordnaviといった無署名アプレットが以下のように起動します。

keytrans

chordnavi


以上、面倒で恐縮ですが、よろしくお願いいたします。

■Javaのバージョンアップによる対処について

Javaがまたバージョンアップ(Version7 Update45)したようです。それで以前から警告されていた通り、そのバージョンアップしたJavaをインストールしないと、KeytransやChordnaviといったいわゆるJavaアプレットは動かないようです。例えば以下のような状況となります。

・IE or Chrome
「お使いのJavaのバージョンは安全ではありません。」もしくは「セキュリティ設定によってブロックされたアプリケーション」の旨のウインドウが出る。
→ボタンがあった場合、それを押していくと、Javaの更新ができる?

・Firefox
なにもメッセージらしきものは出ずに黙って動かない。
→URL入力エリアの左横に赤いブロックボタンが表示され、それを押していくとJavaの更新ができる?

もし、上のやり方でうまく更新できなければ、以下のサイトからJavaを更新して下さい。私もそうしました。
http://www.java.com/getjava

■無署名アプレットに対するセキュリティ警告について

Javaのバージョンアップによって、セキュリティ警告ウインドウの内容も変わっています。

まず、KeytransやChordnaviといった「署名されていないJavaアプレット」を起動した場合、ここ最近では以下のようなセキュリティ警告ウインドウが表示されるようになっていました。

・署名されていないJavaアプレットに対するセキュリティ警告ウインドウ(旧)
old-warn-msg


今回のバージョンアップによっても、その内容は一見して同じです。

・署名されていないJavaアプレットに対するセキュリティ警告ウインドウ(新)
new-warn-msg2


この場合でも、KeytransやChordnaviを動かす場合は、今まで通りに「リスクを受け入れて、このアプリケーションを実行します。(I)」をチェックし、「実行(R)」ボタンを押せば問題ありません。

しかし、よく見るとメッセージの文言が変わっています。

「このような署名されていないアプリケーションの実行は安全ではなくセキュリティ上のリスクが生じる可能性があるため、将来のリリースではブロックされます。」

なに?「将来のリリースではブロックされます」?つまり、将来、「署名されていないJavaアプレットは動かさないようにします!」と言ってるのかな?

そうであれば、うーん、困ったもんです。

まず、Javaアプレットには「セキュリティ上、(デジタル)署名をしていないとローカルリソース(ファイル等)へアクセスできない」という制約がありました。今もあるはずです。そして、KeytransやChordnaviは「ローカルリソースへアクセスしないJavaアプレット」なので、署名は不要なのです。

よって、KeytransやChordnaviを実行する際に、こういったアプレット側に疑いをかけられるような奇妙なセキュリティ警告ウインドウが現れるいわれもなく、本来は堂々と実行できるはずなのです。実際、半年程度前まではそうでした。

これに対して、Javaエンジン側のセキュリティフォールがFixできないためなのか、なんなのかよくわかりませんが、セキュリティ警告ウインドウが表示されるようになったどころか、結果として「署名のないアプリケーションを一括で締め出す」という対策にまで及ぶのであれば、合点がいかないところです。

こちら側(アプレット開発側)でデジタル署名をすればよいのですが、そのためには、認証局(CA)への申請やらで、面倒な手間と決して安くないお金が必要となり、とても私のような狼狽貧民にできる代物ではありません。

尚、Androidの(GooglePlayストアの)アプリの場合は、そういった手間をGoogleがそこそこ安い?値段で肩代わりする仕組みなどもあります。よって、このPCのJavaアプレットのアプリについても、例えばOracleがそういった配慮をしてもよいのでは?、などと思ってしまいます。期待できそうもないですが。

ということで、Javaアプレットはもはや終焉に向かっているように思えます。少なくとも、一個人が気軽にフリーウェアとして作成・提供できるものではなくなっているように感じます。まあ、Javaアプレットなんて元々流行らなかったですけど。

ですので、今後、私としては、Guitar Chord Toolsをどう運営するか、ということを考えないといけません。多分、一番の近道は「JavaアプレットでなくJavaアプリケーションとして提供する」ことだと思っています。しかし、Oracleのことですから、そのうち、「Javaアプリケーションの実行にも署名が必要なんですぅ!」なんて、言い出しかねないような気もしています。

以上です。

最近、KeytransやChordnaviといったJavaAppletが急に動かなくなった、との報告を受けます。私自身も実際に体験しています。その原因と対策について述べます。

■1.原因

原因は「Javaのセキュリティ対策」です。

ここ1,2年程、Javaのセキュリティーホールがよく見つかっています。その対策として、OS(Windows等)やWebブラウザ(Firefox等)では、Javaのプログラムを安易に起動しないようになっているようです。

KeytransやChordnaviもJavaのプログラム(正確にはJavaApplet)ですので、それにひっかかって動かなくなるケースがあります。

■2.対策

(2.1)Webブラウザの更新
ご利用のPCのWebブラウザ(IE, Chrome, FireFox等)を最新なものに更新して下さい。

(2.2)Javaの更新
ご利用のPCのJavaを最新なものに更新して下さい。

Javaはセキュリティーホールが発見されると、そこそこ早めに(遅い時もありますが)バージョンアップされます。よって、ご利用のパソコンのJavaを最新のものに更新して下さい。Javaの更新は以下を参考にして下さい。

http://www.java.com/getjava

もしかしたら、あらかじめ古いJavaをアンインストールしておく必要があるかもしれません。そのやり方はこの記事の最後に示しているリンクをご覧ください。

(2.3)OS, Webブラウザ, ウィルス対策ソフトの設定
Javaを最新のものに更新しても、OS(Windows等), Webブラウザ(IE, Chrome,Firefox等), ウィルス対策ソフト等にて、JavaAppletの起動が禁止されている場合があるようです。それらを解除して下さい。

この詳細はケースバイケースです。私もよく把握していません。これに関連して問題が解決しないようであれば、一応、連絡下さい。

■3.セキュリティ警告ウインドウについて

上の(2.1)〜(2.3)を実施して、KeytransやChordnaviを実行した場合、以下のような、「セキュリティ警告ウインドウ」が表示されることがあります。
javaセキュリティ警告
この場合、ウインドウ内の「場所:」が
「http://www1.bbiq.jp/~wibu/guitar-chord/keytrans/」
もしくは
「http://www1.bbiq.jp/~wibu/guitar-chord/chordnavi/」
であることを確認して、
「リスクを受け入れて、このアプリケーションを実行します。(I)」
を選択して、「実行(R)」ボタンを押してください。

これにて、KeytransやChordnaviの起動が成功し、そのウインドウが現れるはずです。

これらのJavaに関する詳細は以下をご覧下さい。
http://www.java.com/ja/download/help/index_installing.xml

以上です。

このページのトップヘ