如何重新修补已签名的小程序并使用我自己的证书重新签名?

How repatch signed applet and re-sign it with my own certificate?

我有 4 个已签名的 jar(其中一个包含小程序 class),想向小程序添加一些功能。我有他们的消息来源。 Applet jar 依赖于其他 3 个非 applet jar,我们称它们为 helper jar。我看到 3 种方法:

  1. 创建新项目,添加3个helper jar作为项目库,将applet jar的全部源复制到新项目,将需要的功能添加到applet class。将项目重建为 jar,使用我们国家证书颁发机构给我的证书对其进行签名。
  2. 创建新项目,将所有 4 个 jar 添加为库,仅创建一个扩展现有小程序的 class,将其构建为 jar,使用我们国家证书颁发机构给我的证书对其进行签名。现在我的小程序代码库包含 5 个罐子。
  3. 创建新项目,复制所有小程序的所有源,通过删除 jar 中的 .RSA 文件和清单文件来删除标志。为小程序添加新功能。将项目重建为单个 jar,使用我们国家证书颁发机构给我的证书对其进行签名。

问题:

  1. 第一个和第二个选项可能会导致这样的情况,即一些 jar 将使用一个密钥签名(使用原样),其他将使用我的密钥签名。可以吗?
  2. 在所有 3 个选择中,我必须至少用我的密钥在一个罐子上签名。我知道,java 7u51 及更高版本不允许自签名 jar,但我有国家证书颁发机构给我的证书。这样的证书可以用吗,还会被封吗?

我从可信站点安装了根证书,但不完全明白是否有必要。据我所知,我的证书包含 url,其中可以验证证书,并且根证书的安装会强制我的 JVM 信任此 URL。我说得对吗?

  • 您需要sign所有罐子都具有相同证书
  • 是的,官方证书就足够了

对于重新分配,您有两种可能性:

  1. 做一个 fat jar 并签名(第 3 方库在 "unpacked" 里面)
  2. 从您的源代码中创建一个 applet.jar,并对其进行签名,包括您所有的第 3 方库

请注意,您还需要设置权限清单属性(1,2)