OS X上的Java Web Start应用程序的身份不明的开发人员

在Mac OS X上,10.9签名的Java Web Start应用程序默认被阻止,并显示以下消息:

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

我知道可以削弱安全检查以允许任何应用程序运行,但这需要最终用户的手动干预。

是否可以“签署”Java Web Start应用程序,使其被识别为源自已识别的开发人员?

谢谢

Apple似乎确实支持webstart的签名 – 但不是直接签署。 您必须将其捆绑在存档中。 请参阅本页底部的注释:

您可以使用codesign实用程序对JNLP文件进行签名,该文件将代码签名作为扩展属性附加到JNLP文件。 要保留这些属性,请将JNLP文件打包为ZIP,XIP或DMG文件。 请小心使用ZIP格式,因为某些第三方工具可能无法正确捕获所需的扩展属性。

另请注意,非Apple开发人员不再支持XIP:

重要提示:从macOS Sierra开始,只会扩展Apple签署的XIP档案。 使用XIP存档的开发人员需要转向使用已签名的安装程序包或磁盘映像。

在最新的OSX版本中,Apple已将其安全模式更改为仅支持Mac App Store中的应用程序并确定开发人员。 在大多数情况下,这会禁止jnlp / java-web-start应用程序启动。

如果这是受信任的应用程序,您可以通过更新系统设置来覆盖这些设置,如下所示:

系统偏好设置 – >安全和隐私 – >(解锁窗口) – >允许从以下位置下载的应用程序:(选择任意位置)

设置屏幕截图

在某些情况下,您可能还需要更新Java安全性首选项

系统偏好设置 – > Java – >安全性 – >(选择中)

设置屏幕截图

调整这些时要小心。 这些设置将为您提供流行的攻击媒介,攻击者可以利用这些攻击媒介利用Java运行时(Java 0天)内的漏洞。

这是一篇相关的post。 似乎无法绕过安全性,全部允许,解决方法。

OS X 10.8 Gatekeeper和Java小程序

来自上面post中的Apple Tech Support。

身份不明的开发人员“是指除Mac App Store或开发者ID识别的开发人员之外的其他来源。请注意,Java applet无法参与Developer ID计划。

我正在考虑构建一个本机应用程序并使用自定义Web协议,而不是类似于skype,您在URI中看到skype://。 看起来Apple似乎不会在不久的将来改变他们对Java applet的立场。 它很可能会变得更受限制,并最终像iOS上的Flash一样被禁用。

如何为OSX和Gatekeeper签署(动态)JNLP文件的答案解决了这个问题,只是忽略了“动态”方面。

您可以对codesign -f -s "Developer ID Application: " application.jnlp进行编码,但HFS资源不会通过Web传输。

在Oracle制定解决方案之前,如果他们这样做,解决JNLP / Web Start问题,我们必须找到解决方案,让我们开始创建Mac应用程序包。

这似乎在OS X 10.10中有所改变。 现在进入系统偏好设置 – >安全和隐私 – >(解锁窗口) – >允许从以下位置下载的应用程序:(选择任意位置) (尝试运行.jnlp文件后),您将看到“仍然运行”的选项。