ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

MacのSafariでJava Appletを動作させるためには、WebサイトはHTTPSのサイトでなければならない?

まだ確定ではありませんが、今までの検証結果ではタイトル通りの結果になりそうです。

MacSafariでは動かない

WindowsInternet ExplorerMacSafariを動作対象としたJava Appletがあります。
2014年1月14日のJava 7 Update 51以降セキュリティが厳しくなっています。

Oracle、「Java SE 7 Update 51」を公開 - 窓の杜

Java Appletはそれまで自己署名をしていましたが、信頼される認証局の証明書を取得して署名しなおし、権限属性を追加しました。

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

これでWindowsInternet Explorerでは、Javaコントロールパネルのセキュリティ・レベルが[高]で、Java Appletは動作しています。
MacSafariでは、Javaコントロールパネルのセキュリティ・レベルが[高]のままではJava Appletは動作せず、セキュリティ・レベルを[中]にしなければならなくなりました。

Javaコントロール・パネルでのセキュリティ・レベルの設定

Java 7はセキュリティ・レベルで動作するようになりましたが、Java 8 Update 20以降では[中]がなくなってしまいました。
MacSafariでは例外サイト・リストへの登録が必要になりました。

例外サイト・リストに登録なしでJavaが動作しているサイトあり

MacSafariで例外サイト・リストに追加しないでJava Appletを動作させる方法はないのかと、情報を探しましたが見つかりません。

他のサイトはどうしているのかと探したところ、java.comFUJIFILM ネットプリントサービスの2サイトがJavaを使っていました。

試してみると、Macでも例外サイト・リストに登録しないで動作しています。
2サイトのJavaをダウンロードして確認しましたが、署名と権限属性の設定をしているのは一緒で、変わったことをしているかまでは把握できませんでした。

2サイトのJavaを調べているときに気になったのは、どちらもHTTPSのサイトからダウンロードされていることでした。

WebサイトはHTTPS必須?

HTTPSが必須なのか確認するために、今動作させようとしているJava Appletととは別のJava Appletを使っている、HTTPSで動作しているサイトがあるので、そのJava Appletに署名と、権限属性を追加しました。

別のサイトをMacで確認すると、例外サイト・リストに登録していなくても、機能が完全ではありませんが動作はしていました。

今後の進め方

今のサイトをHTTPSにすれば、例外サイト・リストに登録しなくてもJava Appletが動作する可能性があるので、SSLの証明書を正式に取得して検証をしていくよう調整していきます。