Authenticode、SPC 和 Java CodeSign 之间的区别?

问题描述 投票:0回答:1

大多数 CA 都在不同的“产品”中销售代码签名证书,例如 Verisign 或 Certum:

  • Microsoft Authenticode - “允许您签署 EXE、OCX、DLL、bla...”

  • Java CodeSign - “允许您签署 Java 代码”

  • 软件发行者证书-“允许您签署软件”

好吧,我真的很困惑。所有这些产品之间有什么区别——价格除外?由于好奇,我问了几次 Verisign 和其他 CA,但没有得到答案。

我从 Certum CA 获得了 Authenticode 证书。我在 Internet Explorer 中注册了它,将其导出为 PKCS#12 PFX,并且可以按照承诺签署 EXE、DLL 等。

现在...我尝试使用 keytool 将此 PFX 导入 Java,然后我尝试签署一个 JAR。它奏效了!

然后是神秘的“软件发行商证书”作为产品。我不知道我可以/应该用那个...Mac 签名? Linux? “Microsoft Authenticode”不也是软件发布者证书吗? EXE 不是“软件”吗?这真的让我很困惑。

所以,我现在的问题是:当我订购了 Microsoft Authenticode 证书时,使用它进行签名是否违法? JAR 文件或任何其他内容(如果可能)?这些证书之间似乎没有技术差异。所有这些产品都应该具有相同的代码签名 EKU-OID“1.3.6.1.5.5.7.3.3”,这在 EXE、JAR、Adobe Air 和周围还存在的东西之间没有任何区别。所以,如果所有“CodeSigning”证书在技术上都是平等的,那我为什么还要决定我是想成为“Java 开发人员”还是“Windows 开发人员”还是“软件开发人员”?

也许证书还有差异?当我使用 Authenticode-certs 进行签名时,也许我在 JAR 中没有获得足够的权限?

(PS:我没有将我的软件用于商业用途!)

java windows security certificate pki
1个回答
2
投票

没有你猜的技术差异。使用适当的工具链,可以使用用于签署 Java 应用程序的证书来签署 Windows 可执行文件。

© www.soinside.com 2019 - 2024. All rights reserved.