【问题标题】:I can't sign my code. What will be the impact on end users?我无法签署我的代码。对最终用户有何影响?
【发布时间】:2014-03-02 10:32:18
【问题描述】:

我一直在研究使用 Jar Bundler 从我的 .jar 创建一个 .app,我读到您应该在捆绑应用程序之前使用 Developer ID 证书对代码进行签名。但是,我不是 Mac 开发者计划的成员,现在也负担不起。

那么,不签署 Java 应用程序将如何改变最终用户的体验(如果有的话)?如果可以的话,我需要找到一个替代解决方案有多严重?

【问题讨论】:

  • 我相信您最终会收到警告,并且用户可能必须右键单击它才能运行它。我建议对“mac run unsigned app”进行谷歌搜索以获取更多信息。

标签: java macos certificate code-signing


【解决方案1】:

从可用性的角度来看,未签名的 java 比未签名的 cocoa 更糟糕,因为您无权访问文件系统。

如果你有一个本地可可应用程序包,你会收到不同的安全警告和保护措施,具体取决于最终用户的设置,但对于 java,我很确定 unsigned 意味着基本上没有磁盘或网络 IO

【讨论】:

  • 哦,这不是我想听到的!我现在真的买不起每年 99 美元,那么有什么替代解决方案可以限制没有签名代码的影响吗?在所有版本的 osx 上也是如此吗?
  • 要签署一个 jar 你不需要开发人员证书(但我不是 Java 专家),事实上我什至不确定它们是相同的格式......你可以创建你的在 keychain.app 中拥有假证书,或者从 java 人员通常做的地方之一(verisign、thawte 等)购买一个,尽管我刚刚检查了 thawte,它们是 ADC Mac 开发人员会员资格的 3 倍
  • 此外,如果您只是在自己的机器或组织机器上运行它,您可以制作自己的 CA,然后从中制作代码签名证书......如果您的意思是您的代码对于任何形式的公共用途,那么您应该能够拿出 100 美元
  • @GradyPlayer 未签名的 Java 应用程序可以看到文件系统,只要操作系统允许它们运行(即,选择了“Anywhere”安全选项)。我认为您正在考虑 Java applet
  • @whiskeyspider 那可能是......我玩java已经有很长时间了(8年?),但我记得当时这是一个问题;但我绝不是 JVM 专家
【解决方案2】:

这取决于他们的安全偏好。如果用户将“允许从以下位置下载的应用程序”安全首选项设置为“Mac App Store 和已识别的开发人员”,则默认情况下他们将无法运行您的应用程序(但请参阅下面的选项)。此限制与 Java 无关,同样适用于未签名的 Cocoa 应用程序。

如果他们将设置更改为“Anywhere”,那么他们将能够运行您的应用。

另一个选项是告诉您的用户按住 Control 键单击或右键单击应用程序,然后选择打开。这将使他们可以选择仅绕过此应用的默认安全设置。一旦他们运行它,他们将不会再次收到警告。

当然,最顺畅的途径是对您的应用进行签名,但我认为未签名的应用也不常见,您可能会发现您的许多用户已经接受过此程序的培训。

【讨论】:

  • 我怀疑可能是这种情况 - 我假设默认情况下操作系统也不允许从“任何地方”运行应用程序。如果没有其他解决方案,我想下一个问题是如何最好地通知 Mac 用户该应用程序未签名?此外,Mac 用户对未签名代码的反应有多强烈?
  • 我会在下载链接旁边添加注释说明,甚至可能包含有关如何控制单击等的说明。就个人而言,如果我从中下载它的网站没有引发任何危险信号,我可能会很舒服地尝试一下。我猜您的应用不会是您的用户遇到的第一个未签名的应用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多