OS X 10.8 Gatekeeper和Java小程序

时间:2012-07-26 08:33:59

标签: java applet code-signing osx-mountain-lion osx-gatekeeper

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

enter image description here

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

据我所知,“数字签名无法验证”,实际上意味着“未使用Mac开发者ID签名”。

所以:我可以使用Mac开发者ID签署Java小程序吗?我可以使用Mac开发者ID和标准代码签名证书进行签名吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:10)

以下是我从Apple Developer Technical Support获得的答案:

  

感谢您在调查过程中耐心等待。

     

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

     

现在,用户已经收到此警报   运行已签名的applet,因为签名的applet可以逃脱Java   沙箱并对用户的系统进行意外更改。用户有   如果选中,则选中“允许所有小程序”框   他们信任开发人员,因此他们不会再看到警报   除非他们从Java安全性首选项中删除该项目。

     

Mountain Lion的变化是现在的验证提醒   基本上意味着applet的签名是有效的,但applet   来自一个身份不明的开发人员,并试图升级特权   当Gatekeeper启用且用户必须决定是否允许时   这一点。

     

“身份不明的开发者”是指除Mac App Store之外的其他来源   或开发者ID识别的开发人员。请注意,Java小程序不能   参加开发者ID计划。

     

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

     

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

     

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

     

如果您希望更改警报的措辞,请提交一份   错误报告https://developer.apple.com/bugreporter

这基本上意味着无法以这样的方式对applet进行签名,以避免显示此消息。我向Apple提交了一个错误报告,说我希望改变消息的措辞,不要包含UNIDENTIFIED,UNVERIFIED,INSECURE等字样...因为这是签署小程序的全部要点,以便用户能感受到温暖当他们需要允许小程序运行时,内心舒适,向他们保证他们即将允许的内容是可以验证的,并且不会对他们的计算机造成任何伤害,我们需要在它的位置显示它将是可见的,用它捅他们的眼睛。

答案 1 :(得分:3)

你回答了自己的问题。 Gatekeeper认为Apple不签发的证书/签名不受信任。

Apple Documentation会告诉您如何导出证书。然后你可以像往常一样使用它。 codesign命令也可以解决问题。