OS X 10.8 网守和 Java 小程序

在 OS X 10.8 的新版本中,当您尝试启动已签名的 Java 小程序时,Gatekeeper 将弹出以下警告:

enter image description here

该小程序已使用有效的代码签名证书进行签名,并且可以在其他平台以及以前版本的OS X上正常工作。如果我将“允许从以下位置下载应用程序:”更改为“任何地方”,它就可以正常工作。

据我所知,“无法验证数字签名”,实际上意味着“签名不是使用Mac开发人员ID制作的”。

那么:我可以使用 Mac 开发者 ID 对 Java 小程序进行签名吗?我可以使用 Mac 开发人员 ID 和标准代码签名证书对其进行签名吗?有没有更好的方法?


答案 1

以下是我从 Apple Developer 技术支持处得到的答案:

感谢您在我们调查此事时的耐心等待。

警报由 Java 呈现,而不是由 Gatekeeper 呈现。但是,您是对的,OS X Mountain Lion 上的验证逻辑已更改。

一段时间以来,用户在运行已签名的小程序时会看到此警报,因为已签名的小程序可以逃离 Java 沙箱并对用户的系统进行意外更改。如果用户信任开发人员,则可以选择选中“允许来自以下位置的所有小程序”框,因此除非他们从 Java 安全性首选项中删除该项目,否则他们不会再次看到警报。

Mountain Lion中的变化是,验证警报现在基本上意味着小程序的签名是有效的,但是小程序来自身份不明的开发人员,并且当启用Gatekeeper并且用户必须决定是否允许时,它正在尝试升级权限。

“身份不明的开发者”是指 Mac App Store 或开发者 ID 标识的开发者以外的来源。请注意,Java 小程序不能参与开发人员 ID 程序。

如果 Gatekeeper 设置为仅信任 Mac App Store 应用,则您将无法将小程序添加到受信任列表,除非您使用点按“显示详细信息”后显示的工作表将小程序的证书添加到钥匙串。

未签名的小程序根本不允许转义 Java 沙箱。

这与Gatekeeper对原生Mac应用程序的处理一致;默认情况下,不允许运行来自身份不明的开发人员的应用。

如果您希望看到警报的措辞发生变化,请在 https://developer.apple.com/bugreporter 提交错误报告。

这基本上意味着无法以这样的方式对小程序进行签名,从而避免显示此消息。我向Apple提交了一份错误报告,说我希望更改消息的措辞,使其不包含身份不明,未验证,不安全等单词...因为这就是签署小程序的全部意义,这样当用户需要让小程序运行时,他们可以在里面感到温暖和舒适,向他们保证他们即将允许的东西是可以的,并且已经过验证,它不会对他们的计算机造成任何伤害,我们需要在可见的地方展示它, 用它来戳他们的眼睛。


答案 2

你回答了自己的问题。Gatekeeper 认为不是由 Apple 颁发的证书/签名是不可信的。

Apple 文档将告诉您如何导出证书。然后,您可以像往常一样使用它。协同设计命令也可以解决问题。


推荐