无法打开应用,因为它来自身份不明的开发者

时间:2017-04-20 05:38:50

标签: macos code-signing

问题:

在阅读本文之前请注意:"告诉他们转到System preferences > Security & privacyallow 3rd party applications to run。这个问题不是一个可以接受的解决办法。

我创建了.app已使用有效的Mac开发人员证书签名。然而从互联网上下载它&运行仍然会抛出安全提示:

  

应用程序无法打开,因为它来自身份不明的开发人员

这是codesign -vvv的<{1}}终端转储:

.app

我不明白为什么这不通过Gatekeeper?有什么遗失的吗? Apple是否需要进一步付款/贿赂?

更新1:

@TheDarkKnight建议我使用不正确的证书对Executable=/Users/me/Desktop/ADRA.app/Contents/MacOS/ADRA Identifier=unity.Company.ADRA NSW 2016 Format=app bundle with Mach-O thin (i386) CodeDirectory v=20200 size=178145 flags=0x0(none) hashes=5561+3 location=embedded Hash type=sha256 size=32 CandidateCDHash sha1=79ecf88721d6387749c1f6b10355c3683ef20eb2 CandidateCDHash sha256=0799e968a18a663a0c08d26d3fb7826017ce5a3a Hash choices=sha1,sha256 CDHash=0799e968a18a663a0c08d26d3fb7826017ce5a3a Signature size=4739 Authority=3rd Party Mac Developer Application: Company Pty Ltd (NH73TNDB28) Authority=Apple Worldwide Developer Relations Certification Authority Authority=Apple Root CA Signed Time=20 Apr 2017, 2:46:12 PM Info.plist entries=14 TeamIdentifier=NH73TNDB28 Sealed Resources version=2 rules=12 files=138 Internal requirements count=1 size=224 进行签名。看起来他们是正确的,所以我去创建一个新的.app,但显然是因为我不是一个代理人&#39;在群组帐户中,所以我现在必须等到“代理人”#39;为我创造一个 - 似乎倒退,没有别的办法等待代理商&#39;为我做这个?

  

(在Xcode中)如果&#34;开发者ID&#34;单选按钮显示为灰色,您可能有一个组帐户。 这些类型的帐户只允许&#34;代理&#34;创建开发者ID的角色。如果您遇到困难,请联系创建您的Apple开发者帐户组的人员。

https://developer.mozilla.org/en-US/docs/Mozilla/Signing_Mozilla_apps_for_Mac_OS_X

更新2:

所以我今天终于获得了我的新证书,重新签名Developer ID Application certificate,从服务器上运行并且仍然是错误消息。权威似乎现在是正确的:

.app

我只签署了Executable=/Users/me/Downloads/ADRA.app/Contents/MacOS/ADRA Identifier=com.company.adra Format=app bundle with Mach-O thin (i386) CodeDirectory v=20200 size=178133 flags=0x0(none) hashes=5561+3 location=embedded Library validation warning=OS X SDK version before 10.9 does not support Library Validation OSPlatform=36 OSSDKVersion=657408 OSVersionMin=656896 Hash type=sha256 size=32 CandidateCDHash sha1=90d2a54162d6d018bf4f7602d7707c8e8e522fc6 CandidateCDHash sha256=dadfe5203d1367ea776f9501025dbd4ce751ee30 Hash choices=sha1,sha256 Page size=4096 CDHash=dadfe5203d1367ea776f9501025dbd4ce751ee30 Signature size=8930 Authority=Developer ID Application: Company Pty Ltd (NH73TNDB28) Authority=Developer ID Certification Authority Authority=Apple Root CA Timestamp=10 May 2017, 3:36:51 pm Info.plist entries=14 TeamIdentifier=NH73TNDB28 Sealed Resources version=2 rules=12 files=138 Internal requirements count=1 size=184 我还需要做些什么来使这项工作成功吗?是否有一段时间我必须等待它才会起作用?

1 个答案:

答案 0 :(得分:2)

Apple为不同目的提供不同的证书。

如果您查看从App Store下载的应用程序的签名,您将看到它们通常包含公用名称Apple Mac OS Application Signing,因为Apple重新签署了他们通过商店分发的应用程序

对于通过备用流分发的第三方开发者,其应用程序证书通常具有以:"Developer ID Application..."开头的公用名。

请注意,其他第三方证书可用,例如用于签署安装程序包的安装程序证书,其公用名称以"Developer ID Installer..."开头。

能够使用证书签署产品的特权必须受到限制并严格控制。

如果您的证书副本被泄露,它可以用于恶意目的,例如恶意软件的分发,如KeRanger, which infected the Transmission BitTorrent application的情况。

如果您怀疑自己拥有泄露的证书,则需要撤销该证书,该证书可以从Apple Developer帐户启动。

因此,Apple限制为代理商创建证书,因为只有一个人在Apple开发者帐户中注册,并且是法律上同意对其负责的人。