2014-06-24 2 views
1

У меня возникла проблема самоподписывания апплета Java. Апплет состоит из одного класса TestApplet и корректно работает внутри средства просмотра апплета Eclipse. Апплет упакован в файл jar, который подписан с использованием хранилища ключей.Самостоятельные Java-апплеты

jarsigner -keystore ..\.keystore bin\TestApplet.jar myalias 

, который выдается «баночка подписал» И предупреждение: «Сертификат подписавшего истекает в течение 6 месяцев»

Я загрузил файлы на веб-странице общественного и побежал апплет в веб-браузере но получил сообщение об ошибке: «Приложение заблокировано параметрами безопасности» и не может запустить апплет. Если я изменю уровень безопасности на средний, я получаю предупреждающее сообщение: «Беззнаковое приложение из нижерасположенного запроса запрашивает разрешение на запуск». и я могу запустить апплет. Но апплет должен работать на других компьютерах, поэтому это решение неадекватно.

Если я загружаю файл jar с хоста, я могу его проверить.

jarsigner -verify TestApplet.jar 

, который выдается «баночка проверенную»

Так почему же файл банка, как представляется, без знака, когда бежал из в веб-браузере, но подписан при проверке с Jarsigner?

Единственное, что я могу придумать, это то, что TestApplet.jar полностью игнорируется. Можно запустить апплет без указания параметра архива.

Ниже представлена ​​структура файлов.

bin/TestApplet.class 
bin/TestApplet.jar 
index.html 

Вот код, который я использую для добавления апплета java на веб-страницу.

<object type="application/x-java-applet" width="100" height="100"> 
    <param name="codebase" value="bin" /> 
    <param name="archive" value="bin/TestApplet.jar" /> 
    <param name="code" value="TestApplet" /> 
</object> 

EDIT: Если это делает никакой разницы, апплеты будет работать в локальной сети, который не подключен к Интернету.

+0

Большинство браузеров считают, что «неподписанные» и «самоподписанные» - это одно и то же, поскольку у них нет способа проверить, что вы являетесь тем, кем вы говорите, с самоподписанным сертификатом. – aruisdante

+6

Неподписанные и самоподписанные JAR более или менее устарели Oracle. Используя настройки безопасности по умолчанию, единственный способ запуска апплетов в браузере теперь - подписать их с помощью реального ЦС. – whiskeyspider

+2

Вот один из источников их объявления о безопасности: https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias – user1071777

ответ

3

Самостоятельным апплетам больше не нужно. Вам необходимо подписать свои банки с сертификатом подписи кода, выпущенным доверенным ЦС.

Причина, по которой jarsigner говорит jar verified является то, что он действительно подписан правильно и выполняет одну из целей подписи, которая заключается в обеспечении целостности. Это гарантирует, что ваша банка не была изменена, что нормально при распространении вашей банке, просто не в контексте апплета, где нам также нужно знать, что она исходила из надежного источника.

Смежные вопросы