在OS X Mountain Lion上具有自签名证书的Java小程序

时间:2012-06-21 11:05:09

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

我们有一个需要完全信任的Java小程序。

在开发和预发布测试期间,我们使用自签名证书对其进行签名(生产版本使用真实的代码签名证书进行签名)。

但是当我们尝试在OS X 10.8的先决条件上启动自签名小程序时,我们再也不能选择允许它运行了。简单地禁用“允许”按钮:

Disabled "Allow" button

如果我按“显示详细信息...”,我可以选择“始终信任”证书,但这没有区别:

enter image description here

它适用于OS X Lion 10.7上的相同版本的Java JRE,因此我怀疑它是操作系统的问题,而不是JRE。

有没有解决方法?

我不希望使用真正的代码签名证书进行测试:使用真实的代码签名证书进行签名意味着我的公司断言applet是安全的并且应该受到信任。在我们测试它之前,我们很难断言。

3 个答案:

答案 0 :(得分:14)

这是Mac OS X中的新安全功能,默认情况下只有来自Mac Store&来自可信赖的开发者可以在那里运行。幸运的是,它很容易改变,你必须在Mac OS X偏好中允许这样做。

转到首选项 - >安全与安全隐私并点击挂锁以允许更改。

然后在“允许下载的应用程序”中选择“Anywhere”。

之后,将启用Java对话框中的按钮。

Mac OS X Security & Privacy Preferences

答案 1 :(得分:5)

如果您收到“Application Blocked by Security Settings”消息,则需要进入System Preferences: Java: Security并将您的网站添加到例外列表或将security level缩减为Medium

答案 2 :(得分:0)

OS X Lion您可以使用内置的 Keychain Access 工具手动将证书添加为受信任的根证书。我还没有访问OS X Mountain Lion,所以我不知道它是否适用于Mountain Lion,但似乎值得一试。 Lion中的步骤是:

  • 打开钥匙串访问权限(位于 / Applications / Utilities
  • 点击文件 | 导入项目......
  • 将目的地钥匙串更改为系统
  • 找到您的证书文件,然后点击打开
  • 它会说“你希望你的计算机从现在开始信任证书吗?”。单击始终信任

如果直接在Java密钥库中生成证书,则可能没有独立的证书文件。您可以轻松export one using this guide from Oracle

我注意到您的屏幕截图显示“此证书已被标记为此帐户信任”,这很奇怪,因为我希望这是可以接受的。也许在OS X Mountain Lion中,用户添加的根证书的状态低于Apple发布的官方版本?如果您发现上述步骤不起作用,您可以尝试将证书添加到官方根密钥链。 Keychain Access 不允许您这样做,但我相信您可以使用内置certtool手动编辑位于/System/Library/Keychains/SystemRootCertificates.keychain的钥匙串来实现这一目标。