2014-10-09 10 views
9

तो हमारे पास एक प्रमाण पत्र है कि हम kexts, पर हस्ताक्षर लेकिन जब हम चलाने> sudo kextload friendly.kext, यह विफल रहता है और हम kext प्रस्थान कर सकते हैं हम चाहते हैं, और साबित करने के लिए यह हस्ताक्षर करना चाहता है, यहाँ कुछ नैदानिक ​​उत्पादन है:Codesigning Kext kextload दौरान विफल रहता है, "कोड हस्ताक्षर अमान्य"

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

spctl -एक -vvvv friendly.kext

friendly.kext: accepted 
source=Developer ID 
origin=Developer ID Application: Friendly Corporation 
/Library/Extensions 

codesign -dvvv friendly.kext

Executable=/Library/Extensions/friendly.kext/Contents/MacOS/friendly 
Identifier=com.friendly.friendly 
Format=bundle with Mach-O thin (x86_64) 
CodeDirectory v=20200 size=502 flags=0x0(none) hashes=18+3 location=embedded 
Hash type=sha1 size=20 
CDHash=a1e2bf8d53ea67c6cfe9fc3d6d2001fe56c838a7 
Signature size=8528 
Authority=Developer ID Application: Friendly Corporation 
Authority=Developer ID Certification Authority 
Authority=Apple Root CA 
Timestamp=Oct 9, 2014, 11:49:02 AM 
Info.plist entries=21 
TeamIdentifier=1234567890 
Sealed Resources version=2 rules=12 files=1 
Internal requirements count=1 size=180 

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk 
friendly.kext: satisfies its Designated Requirement 

ऐसा लगता है कि यह ठीक से हस्ताक्षर करना चाहता है; हालांकि, जब मैं चलाने> sudo kextutil -v friendly.kext:

Defaulting to kernel file '/System/Library/Kernels/kernel' 
Diagnostics for /Library/Extensions/friendly.kext: 
Code Signing Failure: code signature is invalid 
/Library/Extensions/friendly.kext appears to be loadable (not including linkage for on-disk libraries). 
ERROR: invalid signature for com.techsmith.friendly, will not load 

मैं या तो मैं प्रमाणपत्र गलत डाउनलोड किया गया (हम निश्चित रूप से kext हस्ताक्षर करने के लिए अनुमोदित किया गया) में सोच रहा हूँ, हालांकि मैं एक बार पहले प्रमाण पत्र redownloading की कोशिश की ताकि समस्या न हो। अन्यथा, यह तरीका है कि मैं हस्ताक्षर कर रहा हूं। मैं सोच रहा हूं कि मेरे पास साइन इन करने से पहले किक्स्ट पर सेट की गई अनुमतियों के साथ कुछ करना है?

क्या किसी ने इस समस्या को पहले देखा है?

अग्रिम धन्यवाद!

उत्तर

12

केक्स्ट हस्ताक्षर प्रमाणपत्र में विस्तार होना चाहिए "(1.2.840.113635.100.6.1.18)" सूचीबद्ध - यह इसे एक केक्स्ट-सक्षम प्रमाणपत्र के रूप में निर्दिष्ट करता है। आप इसे Keychain Access.app में देखकर आसानी से सत्यापित कर सकते हैं। (यह नीचे, नीचे एक्सटेंशन के नीचे सूचीबद्ध है "(1.2.840.113635.100.6.1.13)" जो मुझे लगता है कि ऐप्स के लिए उपयोग किया जाता है और इस प्रकार सभी डेवलपर आईडी प्रमाणपत्रों में मौजूद होता है)

+0

हाँ, इसलिए मेरे पास एक शेल स्क्रिप्ट थी जो दौड़ रही थी कि मैं अद्यतन करना भूल गया, लेकिन मूल रूप से मेरे सही हस्ताक्षर पर हस्ताक्षर किए। तो मैं सही ढंग से हस्ताक्षर कर रहा था, लेकिन फिर शेल स्क्रिप्ट सिर्फ अहाह के साथ अमान्य प्रमाण के साथ हस्ताक्षर करेगा। बस कल –

+0

पर गेंद पर नहीं था स्पष्ट रूप से नए प्रमाणपत्रों के लिए kext हस्ताक्षर उपलब्ध नहीं है ... जिनके पास पहले से ही है, आनंद लें! http://stackoverflow.com/questions/26671885/codesigned-kext-but-why-not-load-in-yosemite10-10 – gimix

+0

@gimix जहां तक ​​मुझे पता है, डिफ़ॉल्ट रूप से डेवलपर आईडी प्रमाणपत्रों पर kext हस्ताक्षर कभी सक्षम नहीं किया गया था। केएक्सटी हस्ताक्षर जांच ओएस एक्स 10.9 के साथ पेश की गई थी, और मेरे क्लाइंट ने कटक-सक्षम डेवलपर आईडी से अनुरोध किया था जब 10.9 अभी भी बीटा में था। – pmdj

संबंधित मुद्दे