Внутреннее приложение JNLP не будет работать под Java 7

У нас есть собственное приложение, которое можно запускать как на рабочих станциях Unix, так и на ПК с Windows. Некоторая предыстория нашей среды:

  • Система Unix является «живой» (чтение/запись), тогда как система Windows — это система, предназначенная только для чтения дневных данных.
  • Пользователи Unix могут запускать из командной строки (используя предоставленный сценарий оболочки) или через Java Web Start.
  • Пользователи Windows могут работать только через Java Web Start.
  • Система Unix не имеет доступа к Интернету, но система Windows имеет.
  • Параметр безопасности в jnlp установлен на «все разрешения», которые в настоящее время необходимы.
  • Приложение скомпилировано в системе Unix с Java 5, а jar-файлы самоподписаны оттуда. Затем приложение развертывается в системе Unix, а затем «привязывается» к системе Windows.

Проблема. С обновлениями безопасности для Java 7 у некоторых пользователей на ПК возникают проблемы с запуском приложения, поскольку оно самоподписано.

Вопрос 1. Просматривая гору документации, похоже, что самоподписание скоро уйдет в прошлое и что приложение вообще не будет работать. Это абсолют? Я не могу найти однозначного ответа, применимого к внутренним приложениям JWS, которые не развернуты за пределами локального домена с ограниченным доступом.

Вопрос 2. Внесение изменений в наш код, чтобы он мог работать как приложение в песочнице, было бы нетривиальной задачей. Решит ли это это, или мы все еще будем решать проблемы безопасности?

Вопрос 3. Решит ли эту проблему распространение/установка/регистрация/использование нашего самодельного сертификата среди клиентов?

Любая помощь или предложения <cough> Andrew Thompson I'm talking to you </cough> приветствуются.

РЕДАКТИРОВАТЬ: У нас есть возможность подписать наши jar-файлы с помощью доверенного корневого ЦС, но мы не будем подписывать это (долгая история), и время развертывания увеличится с пары часов до многих. дней, поэтому нам интересно, доступен ли альтернативный маршрут для внутренних приложений.


person splungebob    schedule 23.10.2013    source источник
comment
Для Q3: означает ли это, что сертификат, который вы использовали для подписи приложения, не был импортирован в хранилище доверенных сертификатов пользователей? Я подозреваю, что это может решить большую часть вашей боли. см. здесь Google: установка самоподписанного сертификата java . На заметку: см. возможный дубликат, который я только что опубликовал.   -  person mwhs    schedule 24.10.2013
comment
возможный дубликат Java Web Start не работает, начиная с JDK 1.7   -  person mwhs    schedule 24.10.2013
comment
@mwhs Предоставленная вами ссылка SO выглядит многообещающе. Однако мой энтузиазм сдерживается заявлением Your cert does NOT have to be signed, but unsigned certs will prompt the client with a trust message that they can ignore. Насколько я понимаю, это (побуждение) не будет верным в будущем.   -  person splungebob    schedule 24.10.2013
comment
Тогда сочетание очистки временных интернет-файлов и установки вашего сертификата в хранилище доверенных сертификатов Java VM пользователей поможет.   -  person mwhs    schedule 24.10.2013
comment
Кроме того, проблема ОП в этой возможной дублирующей ссылке была связана с зависанием приложения. Мое приложение не зависает. Java 7 не позволяет конечному пользователю запустить приложение из-за ошибки ненадежного сертификата (которая раньше была опцией для пользователя, но теперь нет).   -  person splungebob    schedule 24.10.2013


Ответы (1)


Вам необходимо импортировать созданный вами сертификат в хранилище ключей/сертификатов, используемое виртуальной машиной Java, которая используется для запуска вашего приложения WebStart.

Другим вариантом (мой выбор), безусловно, было бы потратить несколько монет и подписать ваш сертификат хорошо известным корневым центром сертификации. Я думаю, вы можете сделать это и для доменов интрасети.

person mwhs    schedule 23.10.2013
comment
См. мой РЕДАКТИРОВАТЬ о том, почему мы пытаемся избежать подписания с доверенным органом. - person splungebob; 24.10.2013
comment
О, извините, я не видел вашу правку. Если подписание с корневым ЦС невозможно, вам необходимо установить созданный вами ЦС в хранилищах ЦС ваших пользователей. - person mwhs; 24.10.2013
comment
Я попробую это, как только наши системы будут обновлены до последней версии Java 7, что может занять некоторое время. Затем я вернусь с обновлением. Спасибо. - person splungebob; 25.10.2013
comment
ОБНОВЛЕНИЕ: у меня до сих пор не установлена ​​более новая версия Java 7 для экспериментов, но я отмечу это как правильное, поскольку оно соответствует совету здесь: Самоподписанные сертификаты для известного сообщества - person splungebob; 12.11.2013