使用Windows代码签名证书签署KEXT代码

时间:2014-08-07 11:47:12

标签: macos code-signing kernel-extension

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

按如下方式签署KEXT:

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

说好的并且:

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).

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

1 个答案:

答案 0 :(得分:2)

GlobalSign回复:

  

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

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