【问题标题】:KEXT code signing with Windows code signing certificate使用 Windows 代码签名证书进行 KEXT 代码签名
【发布时间】:2014-08-07 11:47:11
【问题描述】:

由于 Yosemite 的发布,我现在需要签署一个 KEXT。我有一个 GlobalSign 证书,用于对相应的 Windows 驱动程序进行代码签名,所以我通过 Keychain Access 导入了它,没问题。

按如下方式签署 KEXT:

sudo codesign -s "<keychain certificate name>" --timestamp=http://timestamp.globalsign.com/scripts/timstamp.dll MyKext.kext

说 A OK 并且:

spctl --assess --type execute MyKext.kext

说:

MyKext.kext: accepted  
override=security disabled

但是将该 KEXT 复制到 Yosemite 目标系统 spctl 说:

MyKext.kext: rejected

知道为什么会出现这种差异吗?

编辑:我注意到 KEXT 中的二进制文件没有改变,只有 _CodeSignature 文件夹被添加到 Contents (!) 下

EDIT2:使用 kextutil -tn MyKext.kext 检查产生:

Diagnostics for MyKext.kext:
Code Signing Failure: code signature is invalid
MyKext.kext appears to be loadable (including linking for on-disk libraries).

我已经仔细检查了钥匙串中的证书,该证书被标记为有效(代码签名为“扩展密钥用法”)

【问题讨论】:

    标签: macos code-signing kernel-extension


    【解决方案1】:

    GlobalSign 回应:

    在进一步检查问题后,证书将允许您签名但不会通过看门人。您可以将我们的证书链接到 Apple 开发者帐户,但由于他们免费提供,我们建议您直接从 Apple 获取,以避免签署应用程序时出现问题。

    所以我直接从 Apple 获得了新证书。

    【讨论】:

    • 它实际上并不是免费的——你需要成为 Mac 开发者计划的成员(99 美元)然后申请一个 kext 签名开发者 ID(常规应用程序开发者 ID 默认不适用于 kexts) .就我而言,这需要 4 周时间才能获得批准,所以我建议留出足够的时间。
    • @pmdj - 感谢您提供这些信息 :) 是的,我认为这将是“免费的”,只要我在 Mac 开发程序中...
    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 2012-09-10
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2013-10-10
    • 2014-01-25
    相关资源
    最近更新 更多