我在我的Mac keychain中有一个自签名根证书,只有代码签名扩展(没有其他扩展);我使用它来签署所有来自∞实验室的代码,使用苹果的codesign工具,它工作得很好。
我希望扩展一下自己,做一些Java开发。我知道苹果提供了一个从密钥链读取的KeyStore实现,我可以用以下命令列出我在密钥链中的所有证书:
keytool -list -provider com.apple.crypto.provider.Apple -storetype KeychainStore -keystore NONE -v
但是,每当我尝试使用jarsigner对一个简单的测试JAR文件进行签名时,我都会得到:
$ jarsigner -keystore NONE -storetype KeychainStore -providerName Apple a.jar infinitelabs_codesigning_2
Enter Passphrase for keystore: <omitted>
jarsigner: Certificate chain not found for: infinitelabs_codesigning_2. infinitelabs_codesigning_2 must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
我做错了什么?
(证书是在Apple's instructions for obtaining a signing identity之后创建的。)
发布于 2009-02-28 18:59:09
你有没有尝试过从苹果密钥链中导出密钥并通过keytool导入它?也许苹果没有把keytool和他们的keychain正确地集成在一起(他们在支持Java方面没有出色的记录)。
编辑:
嗯..。我刚刚尝试从我导入到苹果密钥链的java存储中提取一个有效的密钥(有一个私钥/公钥),但它不起作用。所以,如果我的导入是错误的,你就不能以这种方式访问苹果钥匙链,否则就会出问题:-)
https://stackoverflow.com/questions/123902
复制相似问题