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

В новом выпуске OS X 10.8 Gatekeeper выдает следующее предупреждение при попытке запустить подписанный Java-апплет:

Апплет был подписан с действующим сертификатом подписи кода и будет работать правильно на других платформах, а также в предыдущих версиях OS X. Если я изменю "Разрешить загрузку приложений из:" на "Везде", он будет работать правильно.

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

Итак: Могу ли я подписывать Java-апплеты с помощью Mac Developer ID? Могу ли я подписать его как Mac Developer ID, так и стандартным сертификатом для подписи кода? Есть ли лучший подход?

2 ответа

Решение

Вот ответ, который я получил от технической поддержки Apple Developer:

Спасибо за ваше терпение, пока мы исследовали это.

Предупреждение предоставляется Java, а не Gatekeeper. Однако вы правы, что логика проверки была изменена в OS X Mountain Lion.

Некоторое время назад пользователям было показано это предупреждение при запуске подписанного апплета, потому что подписанные апплеты могут покинуть изолированную программную среду Java и внести неожиданные изменения в систему пользователя. У пользователей есть возможность установить флажок "Разрешить все апплеты из", если они доверяют разработчику, и поэтому они не увидят предупреждение снова, если не удалят элемент из настроек безопасности Java.

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

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

Если Gatekeeper настроен на доверие только к приложениям Mac App Store, вы не сможете добавить апплет в список доверенных, если не добавите сертификат апплета в связку ключей, используя лист, который появляется после нажатия кнопки "Показать подробности".

Неподписанные апплеты вообще не могут выходить из песочницы Java.

Это согласуется с подходом Gatekeeper к родным приложениям Mac; Приложения от неизвестных разработчиков не могут запускаться по умолчанию.

Если вы хотите изменить формулировку предупреждения, отправьте отчет об ошибке по адресу https://developer.apple.com/bugreporter.

Это в основном означает, что нет способа подписать апплет таким образом, что вы можете избежать показа этого сообщения. Я подал в Apple отчет об ошибке, в котором говорится, что я хочу изменить формулировку сообщения, чтобы оно не содержало таких слов, как НЕИЗВЕСТНЫЙ, НЕПРАВИЛЬНЫЙ, НЕОБХОДИМЫЙ... потому что в этом весь смысл подписи апплетов, чтобы пользователи чувствовали себя тепло и уютно внутри, когда им нужно разрешить запуск апплета, заверить их, что то, что они собираются разрешить, в порядке и проверено, и это не нанесет никакого вреда их компьютеру, и мы должны показать его в месте, где он будет видно, чтобы ткнуть им в глаза.

Вы ответили на свой вопрос. Привратник считает, что сертификаты / подписи, не выданные Apple, не являются доверенными.

Документация Apple расскажет вам, как экспортировать ваш сертификат. Затем вы можете использовать его как обычно. Команда codeignign также может помочь.

Другие вопросы по тегам