我们的Java应用程序有一个输出Java applet的功能,可以将其上传到我们的在线存储库。最近我们遇到了Oracle安全更新的问题,这些更新需要对applet进行编码,除非在客户端的计算机上降低Java安全设置。
为了解决这个问题,我们试图在applets服务器端上传时对其进行编码,但是我遇到了一些问题。 codeisiging似乎可以正常使用这样的命令(使用Digicert的证书):
jarsigner -tsa http://timestamp.digicert.com -keystore ./keystore.jks -storepass pass /path/to/jar alias
但我们仍然会收到错误消息:
This application contains both signed and unsigned code'
我相信这是因为Java应用程序输出的applet包含一个主jar文件,然后是一些.class文件。反正有没有摆脱.class文件避免这个错误?我们目前想要修复此问题,而无需对输出该applet的Java应用程序进行任何更改。
答案 0 :(得分:4)
您只能签署JAR文件,而不是松散的类文件。类文件本身没有放置签名信息的地方,如果他们这样做,那将是非常多余的。 在JAR文件中,签名哈希进入MANIFEST,公钥出现在相关的RSA或DSA文件中。 您需要执行以下操作之一: