如何为代码签名的JAR添加Permissions属性?

时间:2015-02-02 12:15:30

标签: java jar jarsigner

我有一个代码签名的jar文件。当我尝试使用Java Web Start启动应用程序时,我收到一条警告,显示清单中缺少Permissions属性。

我从META-INF文件夹中删除了*RSA*SH文件,并将以下属性添加到清单中:

  • 权限:所有权限
  • 代码库:*
  • 申请名称:申请

然后我使用jarsigner签署了jar文件。当我尝试启动应用程序时,由于安全设置,我收到应用程序被阻止的错误消息。将安全设置更改为medium后,我可以启动该应用程序,但发布者未知。

我该怎么办,以便发布者不为人知?

1 个答案:

答案 0 :(得分:0)

这个主题的完整答案将涉及Java的新安全限制(因此,取决于您的版本,在这种情况下是基于Web的应用程序,也是客户端的版本)。

请参阅this link作为起点。

无论如何,从你描述的内容和问题来看,基本上有两种方式可以使发布者"不为人所知"。

a)使用"受信任的发行人"。这意味着,从已知(到Java)证书颁发机构获取代码签名证书。 在许多情况下,这也意味着从它们那里购买它(你可以探索一些不用于生产用途的开发选项)。

当你拥有这样的证书时,你会重复签名过程,如果你选择了CA Java on board(例如:Thawte,Symantec / Verisign等),你作为签名者将是&# 34;已知的"

b)据我所知,您使用的是自签名证书

在这种情况下(有点麻烦和不安全),您可以将自签名CA证书安装到正在执行的JRE信任存储(密钥库)中。为此你应该使用keytool java工具,并且对PKI术语有一点经验。 这种方法的最大缺点是,这需要在客户端平台上执行操作(编写文件等),即使是一次性,这通常是不可行的(除非可管理/限制区域,如内部网)