第三方证书和Gatekeeper
Posted
技术标签:
【中文标题】第三方证书和Gatekeeper【英文标题】:Third-party certificate and Gatekeeper 【发布时间】:2014-09-17 16:40:03 【问题描述】:如何让使用第三方证书签名的应用通过 Gatekeeper?
我已经用我为 Windows 版本购买的那个签名了,如果我在“系统偏好设置”中选中了“Mac App 和标识符开发者”选项,它就无法执行。
这是我为签名执行的命令:
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
我做错了什么?
谢谢。
【问题讨论】:
【参考方案1】:Gatekeeper 不接受第三方证书,只接受 Mac App Store 和 Apple Developer ID 证书。这样做的原因是,如果 Apple 发现签名的恶意软件正在分发,他们希望能够撤销用于签名的证书;这只有在 Apple 拥有颁发签名证书的证书颁发机构时才有可能。因此,出于 Gatekeeper 的目的,第三方证书被认为是不可信的。
顺便说一句,您对codesign -- verify
所做的检查只检查签名是否与应用程序的内容匹配,而不是检查它是否被视为网关守卫有效的签名。为此,您需要spctl -va My.app
(尽管请注意,这会根据您当前的 Gatekeeper 策略对其进行检查,因此如果您将 Gatekeeper 设置为仅 Mac App Store,它会将开发人员 ID 签名的应用程序报告为“已拒绝”)。
【讨论】:
以上是关于第三方证书和Gatekeeper的主要内容,如果未能解决你的问题,请参考以下文章
自己签发的证书与根内置的第三方机构(如天威诚信)颁发的证书有啥不同?存在啥风险?