如何重新签名applet并使用我自己的证书重新签名?

时间:2015-01-30 09:54:07

标签: java applet certificate digital-signature

我有4个签名的jar(其中一个包含applet类),并且想要为applet添加一些函数。我有他们的消息来源。 Applet jar依赖于其他3个非applet jar,让我们称它们为helper jar。我看到了3种方法:

  1. 创建新项目,添加3个辅助jar作为项目库,将applet jar的整个源复制到新项目,将所需的函数添加到applet类。将项目重建为jar,并使用我们的国家证书颁发机构提供给我的证书进行签名。
  2. 创建新项目,将所有4个jar添加为库,仅创建一个扩展现有applet的类,将其构建为jar,并使用我们的国家证书颁发机构提供给我的证书进行签名。现在我的applet代码库包含5个罐子。
  3. 创建新项目,复制所有applet的所有源,通过删除jar中的.RSA文件和清单文件来删除符号。向applet添加新功能。将项目重建为单罐,并使用我们的国家认证机构提供给我的证书进行签名。
  4. 问题:

    1. 第一个和第二个选项可能会导致某些罐子用一个密钥签名(使用按原样),其他罐子将用我的密钥签名。可以吗?
    2. 在所有3个选项中,我必须用我的钥匙至少签一个罐子。我知道,java 7u51及更高版本不允许自签名的罐子,但是我的国家认证机构给了我证书。使用此类证书是否可以,它是否仍会被阻止?
    3. 我从可信站点安装了根证书,但是没有完全理解是否有必要。 AFAIK,我的证书包含url,可以验证证书,根证书的安装强制我的JVM信任此URL。我是对的吗?

1 个答案:

答案 0 :(得分:0)

  • 您需要使用相同证书{/ 3}} sign所有罐子
  • 是的,官方证书就足够了

对于再分发,您有两种可能性:

  1. 制作一个肥胖的罐子并签名(第三方库是“拆包”并在里面)
  2. 从您的源代码创建一个applet.jar,并在其中签名,包括您的所有第三方库
  3. 请注意,您还需要设置权限清单属性(12