由于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;)
答案 0 :(得分:2)
GlobalSign回复:
在进一步检查问题后,证书将允许您签署但不会通过网守。您可能可以将我们的证书链接到Apple Developer帐户,但由于他们是免费提供的,我们建议您直接从Apple获取,以避免签署应用程序时出现问题。
所以我直接从Apple获得了新证书。