Неопознанный разработчик для приложения 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 таким образом, чтобы оно распознавалось как происхождение от идентифицированного разработчика?

Спасибо

Ответ 1

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

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

Также обратите внимание, что XIP больше не поддерживается для разработчиков, отличных от Apple :

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

Ответ 2

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

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

Системные настройки → Безопасность и конфиденциальность → (Разблокировать окно) → Разрешить приложения, загруженные из: (Выбрать в любом месте)

Settings Screen Shot

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

Системные настройки → Java → Безопасность → (выберите средний)

Settings Screen Shot

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

Ответ 3

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

OS X 10.8 Приложения-гейткипер и Java

От Apple Tech Support в сообщении выше.

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

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

Ответ 4

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

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

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

Ответ 5

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