最近在处理一个特殊的证书 Developer ID Application(这个证书使用来给那些在Mac App Store之外发布的App进行签发)
但是我发现,我即使下载了这个证书依旧不能使用
打开xcode中的证书管理界面,我们发现,这个证书显示缺少私钥
missing private key
或者使用codesign命令时,我们得到一下错误
no identity found
解决方案:
加入秘钥即可,但是这个秘钥去哪里找呢???
我们从苹果开发者网站(developer.apple.com)上,只能下载证书。
但是申请过证书的人都知道,每次申请证书的时候都需要通过钥匙串访问这个App,使用证书助理功能生成私钥请求,通过私钥去官网申请证书。
那么证书相当于公钥,放在苹果的开发者网站上,私钥存在于那个用来申请证书的电脑上。
如果一个证书要给多台打包机,就需要转移私钥。而转移私钥最好的方法就是p12文件导出。
怎么导出p12,答案就是:
在生成私钥的证书电脑上导出p12文件。
在没有私钥的电脑上导出证书时,如下所示:
在有私钥的电脑上导出证书时,如下所示:
有私钥证书最明显的差异是证书左边有个箭头,点击开来会有个钥匙标记,如下所示:
。
好了,如果私钥丢失,那么这个证书基本上就废掉了,只能删除重新创建了。
p12,是私钥的载体。相当于钥匙复制体。在一个导入了p12文件的电脑,可以在再次导出p12给别人用。一旦p12公开了,那么私钥的意义就没有了。