Подтвердить что ты не робот

OS X 10.8 Гейткипер и Java-апплеты

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

enter image description here

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

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

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

4b9b3361

Ответ 1

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

Благодарим вас за терпение, пока мы исследовали это.

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

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

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

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

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

Неподписанные апплеты не могут вообще покинуть изолированную программную среду Java.

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

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

В основном это означает, что невозможно подписать апплет таким образом, чтобы можно было избежать отображения этого сообщения. Я подал в Apple сообщение об ошибке, в котором говорилось, что я хочу изменить формулировку сообщения, чтобы не содержать такие слова, как UNIDENTIFIED, UNVERIFIED, INSECURE... потому что все это означает, что вы подписываете апплеты, чтобы пользователи могли чувствовать все тепло и уютно внутри, когда им нужно разрешить запуск апплета, чтобы убедиться в том, что то, что они собираются разрешить, в порядке и проверено, и это не повредит их компьютеру, и нам нужно показать его на том месте, где он будут видны, чтобы просунуть им глаза.

Ответ 2

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

Apple Documentation расскажет вам, как экспортировать сертификат. Затем вы можете использовать его, как обычно. Команда codesign может также сделать трюк.