15

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

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

但是当我们尝试在 OS X 10.8 的预版本上启动自签名小程序时,我们不能再选择允许它运行。“允许”按钮被禁用:

已禁用

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

在此处输入图像描述

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

有什么解决方法吗?

我宁愿不使用真实的代码签名证书进行测试:使用真实的代码签名证书进行签名意味着我的公司断言该小程序是安全的并且应该被信任。在我们对其进行测试之前,我们几乎无法断言。

4

3 回答 3

14

这是 Mac OS X 中的新安全功能,默认情况下,只有来自 Mac Store 和受信任的开发人员的应用程序才能在其中运行。幸运的是,它很容易改变,你必须在 Mac OS X 偏好设置中允许它。

转到首选项 -> 安全和隐私,然后单击挂锁以允许更改。

然后在“允许从下载的应用程序”中选择“任何地方”。

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

Mac OS X 安全和隐私首选项

于 2012-07-11T13:55:32.183 回答
5

如果您收到“ Application Blocked by Security Settings”消息,您需要进入System Preferences: Java: Security并将您的站点添加到例外列表或减少security levelMedium.

于 2014-01-21T16:59:42.470 回答
0

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

  • 打开钥匙串访问(位于/Applications/Utilities
  • 单击文件| 导入项目...
  • 将目标钥匙串更改为系统
  • 找到您的证书文件并单击打开
  • 它会说“您希望您的计算机从现在开始信任由 [...] 签名的证书吗?”。单击始终信任

如果您直接在 Java 密钥库中生成证书,那么您可能没有独立的证书文件。您可以使用 Oracle 中的本指南轻松导出一个

我注意到您的屏幕截图显示“此证书被标记为此帐户受信任”,这很奇怪,因为我希望这是可以接受的。也许在 OS X Mountain Lion 中,用户添加的根证书在某种程度上比 Apple 分发的官方证书的地位更低?如果您发现上述步骤不起作用,您可以尝试将您的证书添加到官方根钥匙串中。钥匙串访问不会让你这样做,但我相信你可以使用内置工具certtool手动编辑位于的钥匙串/System/Library/Keychains/SystemRootCertificates.keychain来实现这一点。

于 2012-06-29T02:57:19.443 回答