Неопознанный разработчик для Java Web Start приложения на OS X

в Mac OS X 10.9 подписанные приложения Java Web Start по умолчанию блокируются с сообщением:

"application.jnlp" can't be opened because it is from an unidentified developer.

Я знаю, что можно ослабить проверки безопасности, чтобы разрешить запуск любого приложения, но для этого требуется ручное вмешательство конечного пользователя.

можно ли "подписать" приложение Java Web Start, чтобы оно было распознано как исходящее от идентифицированного разработчика?

спасибо

5 ответов


Apple, похоже, поддерживает подписание webstart , но не напрямую. Вы должны упаковать его в архив. См. примечание в нижней части этой страницы:

вы можете использовать утилиту codesign для подписи файла JNLP, который прикрепит подпись кода к файлу JNLP в качестве расширенных атрибутов. Чтобы сохранить эти атрибуты, упакуйте файл JNLP в файл ZIP, XIP или DMG. Будьте осторожны с использованием формата ZIP, так как некоторые сторонние инструменты могут не захватить необходимые расширенные атрибуты правильно.

Также отметим, что КСИП не поддерживается для разработчиков больше:

важно: начиная с macOS Sierra, будут расширены только архивы XIP, подписанные Apple. Разработчикам, которые использовали архивы XIP, необходимо перейти к использованию подписанных пакетов установщика или образов дисков.


в последних выпусках OSX Apple изменила свою модель безопасности, чтобы поддерживать только приложения из Mac App Store и идентифицированных разработчиков. В большинстве случаев это запрещает запуск приложений jnlp / java-web-start.

Если это доверенное приложение, вы можете переопределить эти параметры, обновив Системные настройки следующим образом:

Системные настройки - > безопасность и конфиденциальность - > (окно разблокировки) - > разрешить приложения, загруженные из: (выберите Где угодно)

Settings Screen Shot

в некоторых случаях вам может потребоваться обновить настройки безопасности Java тоже

Системные Настройки - > Java - > Безопасность - > (Выберите Средний)

Settings Screen Shot

будьте осторожны при выборе этих. Эти настройки откроют вам популярные векторы атаки, в которых злоумышленник может использовать уязвимости во время выполнения java (Java 0 дней).


вот связанный пост. Кажется, что невозможно обойти безопасность, разрешить все, обходной путь.

OS X 10.8 Gatekeeper и Java-апплеты

из технической поддержки Apple в сообщении выше.

неопознанный разработчик " означает источник, отличный от Mac App Store или разработчик, идентифицированный ID разработчика. Обратите внимание, что Java-апплеты не могут участвуйте в программе Developer ID.

Я рассматривая создание собственного приложения и использование пользовательского веб-протокола, аналогичного skype, где вы видите skype:// в URI. Не похоже, что Apple изменит свою позицию по Java-апплетам в ближайшем будущем. Скорее всего, он станет более ограниченным и в конечном итоге просто отключится, как flash на iOS.


ответы как подписать (динамические) файлы JNLP для OSX и Gatekeeper адресуйте этот вопрос, просто игнорируйте "динамический" аспект.

вы можете codesign -f -s "Developer ID Application: " application.jnlp но ресурс HFS не будет передаваться с файлом через интернет.

пока Oracle не разработает решение, если они когда-либо это сделают, обращаясь к jnlp/Web Start, похоже, нам нужно выяснить обходной путь, который запускает нас по пути к созданию пакета приложений Mac.


Это, похоже, изменилось в OS X 10.10. Теперь после Системные настройки - > безопасность и конфиденциальность - > (окно разблокировки) - > разрешить приложения, загруженные из: (выберите в любом месте) (после попытки запуска .jnlp file) вы увидите опцию "запустить в любом случае".