有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向代码签名JAR添加权限属性?

我有一个jar文件,它是代码签名的。当我尝试使用JavaWebStart启动应用程序时,我收到一条警告,说明清单中缺少Permissionsattibute

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

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

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

我能做些什么,这样出版商就不会不为人知了


共 (1) 个答案

  1. # 1 楼答案

    这个主题的完整答案是关于Java的新安全限制(因此,这取决于您的版本,在webstarted应用程序中,也取决于客户端的版本)

    this link为起点

    不管怎样,从你的描述和提问来看,基本上有两种方式可以让出版商“不是未知的”

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

    当你拥有这样一个证书时,你会重复签名过程,如果你选择Java自带的CA(例如:Thawte、Symantec/Verisign等),你作为签名者将被“知晓”

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

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