我第一次尝试对我的Windows应用程序(基于Mac的Mac构建)进行代码签名。我已经将osslsigncode与我的私钥和Apple发行的开发者证书一起使用(我发现这很不寻常,但我不知道它为什么不能工作)。
生成的可执行文件已经明确签名,但它仍然会引起可怕的" Unknown Publisher"用户启动时发出警告。挖掘文件属性会显示签名,但是说“#34;签名中的证书无法验证"”。它正确地将发行人列为"美国,Apple Inc.,Apple Certification Authority"。但是当我获得证书的详细信息时,它会说" Windows没有足够的信息来验证此证书。"
现在,此处有按钮,用于"安装证书......"和#34;发行人声明",我怀疑它会满足它,但当然我不能指望我的最终用户这样做。
那么,究竟缺少什么?是否只有某些CA可以处理投诉,如果是,我在哪里可以找到该列表?或者我的应用程序中是否还缺少其他内容?
注意:如果需要更多详细信息,则会发布所有证书对话框的屏幕截图here。
答案 0 :(得分:1)
它列出 US,Apple Inc.,Apple Certification Authority ,它是 CA (证书颁发机构 - 也由证书代表),用于签署证书,或更好地颁发证书,因为该信息在证书本身。
您可以将CA视为证书的父级。
现在,Windows无法验证您的证书的原因是因为它对证书的父CA 一无所知。
要更改您还必须将父CA导入Windows,如果CA也有父级,也要导入它,依此类推,直到您到达自签名的CA(它没有父,或它是它自己的父母),一个被称为 ROOT CA 。
以ROOT CA开头并以证书结尾的CA列表称为证书链。导入整个证书链后,Windows将不再抱怨,并在“证书”窗口中选择“证书路径”选项卡,您将看到以ROOT CA开头的树状结构中的整个证书链,并以您的证书结束(现在它是唯一显示在那里的证书),其中每个证书都列在其父级下。