Неопознанный разработчик для приложения 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 таким образом, чтобы оно распознавалось как исходящее от идентифицированного разработчика?
Спасибо
6 ответов
Apple, кажется, поддерживает подписание веб-старта - но не напрямую. Вы должны связать это в архиве. Смотрите примечание внизу этой страницы:
Вы можете использовать утилиту codeign для подписи файла JNLP, который прикрепит подпись кода к файлу JNLP в качестве расширенных атрибутов. Чтобы сохранить эти атрибуты, упакуйте файл JNLP в файл ZIP, XIP или DMG. Будьте осторожны при использовании формата ZIP, так как некоторые сторонние инструменты могут некорректно захватывать необходимые расширенные атрибуты.
Также обратите внимание, что XIP больше не поддерживается разработчиками не Apple:
Важно: начиная с macOS Sierra, будут расширяться только XIP-архивы, подписанные Apple. Разработчикам, использующим архивы XIP, необходимо перейти к использованию подписанных пакетов установщика или образов дисков.
В последних выпусках OSX Apple изменила свою модель безопасности, чтобы поддерживать только приложения из Mac App Store и идентифицированных разработчиков. В большинстве случаев это запрещает запуск приложений jnlp/java-web-start.
Если это доверенное приложение, вы можете переопределить эти настройки, обновив системные параметры следующим образом:
Системные настройки -> Безопасность и конфиденциальность -> (Окно разблокировки) -> Разрешить загрузку приложений из: (Выбрать в любом месте)
В некоторых случаях вам может потребоваться обновить настройки безопасности Java.
Системные настройки -> Java -> Безопасность -> (выберите средний)
Будьте осторожны при настройке. Эти настройки откроют вам доступ к популярным векторам атак, где злоумышленник может использовать уязвимости во время выполнения Java (Java 0 дней).
Вот соответствующий пост. Похоже, невозможно обойти безопасность, разрешить все, обходной путь.
OS X 10.8 Gatekeeper и Java-апплеты
От технической поддержки Apple в посте выше.
"Неопознанный разработчик" означает источник, отличный от Mac App Store или разработчика, идентифицированного идентификатором разработчика. Обратите внимание, что апплеты Java не могут участвовать в программе идентификатора разработчика.
Я подумываю о создании собственного приложения и использовании собственного веб-протокола, подобного скайпу, где вы видите 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), вы увидите опцию "Запустить в любом случае".
К сожалению, Apple удалила
Anywhere
вариант под
System Preferences -> Security & Privacy
в версиях macOS Big Sur.
Ниже приведен очень простой способ переопределения параметров безопасности MacOS для неподписанных файлов jnlp, когда вы получаете следующее сообщение:
"file-name.jnlp" не может быть открыт, потому что он от неизвестного разработчика. macOS не может проверить, что это приложение не содержит вредоносных программ.
Выполните следующие действия, чтобы изменить настройки безопасности системы:
- убедитесь, что файл jnlp загружен (обычно в папке Загрузки)
- найдите файл в Finder и используйте
Control
+ щелкните, а затем откройте - у вас должен появиться немного другой диалог с кнопкой « Открыть» , позволяющий переопределить настройки безопасности системы и запустить файл.
Также вам может потребоваться скачать OpenWebStart для macOS.