第三方证书和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的主要内容,如果未能解决你的问题,请参考以下文章

自己签发的证书与根内置的第三方机构(如天威诚信)颁发的证书有啥不同?存在啥风险?

Entitlements 延伸

CAS+Tomcat SSL第三方数据证书导入(jks)

HTTPS环境使用第三方CDN的证书难题与最佳实践 | 高可用CDN架构详解

Java安全(JCA/JSSE):数字证书

中科三方:什么是扩展验证(EV)SSL证书?