在Mac OS X上,10.9签名的Java Web Start应用程序默认被阻止,并显示以下消息:
"application.jnlp" can't be opened because it is from an unidentified developer.
我知道可以削弱安全检查以允许任何应用程序运行,但这需要最终用户的手动干预。
是否可以“签署”Java Web Start应用程序,使其被识别为来自已识别的开发人员?
谢谢
答案 0 :(得分:9)
在最新的OSX版本中,Apple已将其安全模式更改为仅支持Mac App Store中的应用程序并确定开发人员。在大多数情况下,这会禁止启动jnlp / java-web-start应用程序。
如果这是受信任的应用程序,您可以通过更新系统设置来覆盖这些设置,如下所示:
系统偏好设置 - >安全与安全隐私 - > (解锁窗口) - >允许从以下位置下载应用:(选择任意位置)
在某些情况下,您可能还需要更新Java安全性偏好
系统偏好设置 - > Java - >安全 - > (选择中)
调整这些时要小心。这些设置将为您提供流行的攻击媒介,攻击者可以利用这些攻击媒介利用Java运行时(Java 0天)内的漏洞。
答案 1 :(得分:5)
这是一篇相关文章。似乎无法绕过安全性,全部允许,解决方法。
OS X 10.8 Gatekeeper and Java applets
来自上面帖子中的Apple Tech Support。
身份不明的开发者“是指Mac App Store以外的其他来源 或开发者ID识别的开发人员。请注意,Java小程序不能 参加开发者ID计划。
我正在考虑构建一个本机应用程序并使用自定义Web协议,而不是类似于skype,您可以在URI中看到skype://。看起来Apple似乎不会在不久的将来改变他们对Java applet的立场。它很可能会变得更受限制,并最终像iOS上的Flash一样被禁用。
答案 2 :(得分:4)
您可以使用codesign实用程序对JNLP文件进行签名,该文件将代码签名作为扩展属性附加到JNLP文件。要保留这些属性,请将JNLP文件打包为ZIP,XIP或DMG文件。请小心使用ZIP格式,因为某些第三方工具可能无法正确捕获所需的扩展属性。
另请注意,非Apple开发人员anymore不支持XIP:
重要提示:从macOS Sierra开始,只会扩展Apple签署的XIP档案。使用XIP存档的开发人员需要使用已签名的安装程序包或磁盘映像。
答案 3 :(得分:2)
How to sign (dynamic) JNLP files for OSX and Gatekeeper的答案解决了这个问题,只是忽略了“动态”这个问题。方面。
您可以codesign -f -s "Developer ID Application: " application.jnlp
但HFS资源不会通过网络传输文件。
在Oracle制定解决方案之前,如果他们这样做,解决JNLP / Web Start问题,我们必须找到解决方案,让我们开始创建Mac应用程序包。
答案 4 :(得分:1)
在OS X 10.10中似乎已经改变了。现在转到系统偏好设置 - >安全与安全隐私 - > (解锁窗口) - >允许从以下位置下载的应用程序:(选择任意位置)(尝试运行.jnlp文件后),您将看到一个选项,然后运行#34;。