java - 什么是 JCE 代码签名 CA?

标签 java applet certificate jce

我有一个由以下证书链签名的小程序:

Softkey-Kazakhstan (JCE Code Signing CA) 
    Subject: CN=Softkey-Kazakhstan,OU=Java Software Code Signing,O=Sun Microsystems Inc
    Issuer: CN=JCE Code Signing CA,OU=Java Software Code Signing,O=Sun Microsystems Inc,L=Palo Alto,ST=CA,C=US

JCE Code Signing CA (JCE Code Signing CA)
    Subject: CN=JCE Code Signing CA,OU=Java Software Code Signing,O=Sun Microsystems Inc,L=Palo Alto,ST=CA,C=US
    Issuer: CN=JCE Code Signing CA,OU=Java Software Code Signing,O=Sun Microsystems Inc,L=Palo Alto,ST=CA,C=US

此小程序包含自定义加密提供程序实现和一些额外的帮助程序 jar。它必须能够处理本地文件和 USB 设备。

Java 提示它不知道这个证书。根证书似乎是来自 Sun 的用于代码签名的合法证书,java 应该知道它,但由于某种原因它不知道。

我该怎么做,java才不会报错这个applet?我是否应该提取此根证书 JCE 代码签名 CA 并将其安装到 $JRE/lib/security/cacerts 中?

最佳答案

这是个好问题。此证书是自签名的,在 Java tursted CA (cacerts) 中不是官方的。我发现即使该证书已过期,加密扩展也能正常工作(没有签名就无法工作)。所以我想 JCE 要求加密提供者使用“JCE 代码签名 CA”进行签名,但不关心该证书的有效性(也许它由 JCE 在内部检查而没有 cacerts)。我也明白这里不是这样的。问题出在 javaws(JNLP 发行版)上,它需要用可信链对 jar 进行签名。 Oracle 还强调了关于 JCE 代码签名证书的“该证书将不适用于部署目的”(请参阅:here)。但是,如果它必须存在于发行版中怎么办?正如我所说:好问题。

编辑: 结论: 1. Cryptoproviders 必须使用“JCE 代码签名 CA”签名,但不一定有效。 2. 如果您分发使用“JCE 代码签名 CA”签名的 jar,则证书必须有效。 JCE 标志不足以分发,但如果存在,则必须有效。

关于java - 什么是 JCE 代码签名 CA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20218467/

相关文章:

android - 如何签署我已经制作的 android app/.apk 文件

java - NetLogo HPC 内存错误

java - 即使应该返回 false,循环也返回 true

java - Azure 移动服务 getCurrentUser

java - XML 子节点计数 - Java

java - 如何在 Java Applet 中显示 PPT 文件?

java - 是否有与可编写脚本的 Java applet 等效的 .Net 技术? (针对特定用例)

java - Java与小程序之间的通信

node.js - WSS - 连接建立时出错:net::ERR_CONNECTION_CLOSED

ssl - 在 Windows 上生成 cert.pem 和 key.pem