第三方证书和Gatekeeper



如何让Gatekeeper通过使用第三方证书签名的应用程序?

我已经用我为Windows版本购买的软件进行了签名,如果我在系统首选项中选中了"Mac应用程序和标识符开发人员"选项,它将无法执行。

这是我执行的签名命令:

codesign --force --verify --verbose --sign "My cert" My.app

这是用于验证签名的命令:

codesign --verify --verbose=4 My.app

这就是输出:

My.app/: valid on disk
My.app/: satisfies its Designated Requirement

我做错了什么?

谢谢。

Gatekeeper不接受第三方证书,只接受Mac App Store和Apple Developer ID证书。原因是,如果苹果发现签名的恶意软件正在分发,他们希望能够撤销用于签名的证书;这只有在苹果拥有颁发签名证书的证书颁发机构的情况下才有可能。因此,第三方证书对于Gatekeeper来说是不可信的。

顺便说一句,你对codesign -- verify所做的检查只检查签名是否与应用程序的内容匹配,而不是它是否被视为Gatekeeper的有效签名。为此,您需要spctl -va My.app(尽管请注意,这会根据您当前的Gatekeeper策略进行检查,因此,如果您将Gatekeeper设置为仅限Mac App Store,它会将开发者ID签名的应用报告为"已拒绝")。

相关内容

  • 没有找到相关文章

最新更新