已签名的Java小程序不工作

已签名的Java小程序不工作,java,applet,certificate,code-signing,Java,Applet,Certificate,Code Signing,我正在开发一个Java小程序,它以前是自签名的。现在已经使用了Java7U51,我正在为小程序的jar签名 我使用Apache2SSL使用的证书/密钥对jar进行签名。为了做到这一点,我必须使用密钥/证书和库创建一个新的密钥库 如果在applet jar上运行jarsigner-verify,我会得到: This jar contains entries whose signer certificate's ExtendedKeyUsage extension doesn't allow cod

我正在开发一个Java小程序,它以前是自签名的。现在已经使用了Java7U51,我正在为小程序的jar签名

我使用Apache2SSL使用的证书/密钥对jar进行签名。为了做到这一点,我必须使用密钥/证书和库创建一个新的密钥库

如果在applet jar上运行jarsigner-verify,我会得到:

This jar contains entries whose signer certificate's ExtendedKeyUsage extension
doesn't allow code signing.
小程序仍然收到无效证书错误。我可以查看证书,它与SSL使用的证书相同。错误消息表示由于自签名而被阻止,但这不是自签名证书

我可以在将安全设置向下移动到“中等”时运行小程序,但这对于此项目是不可接受的


我用来签名的证书是一个链的一部分(大约4长)。有没有办法让我用整条链子在罐子上签名?我需要使用代码签名证书吗?

我不再从事这个项目,所以我结束这个问题。我们采用的解决方案是使用组策略为小程序托管的URL添加安全异常

你可能对建立一个新的构建工具来解决你的问题感兴趣,也可能不感兴趣,所以我只是把它作为一个评论,但你应该看看Gradle——它是一个非常强大但非常容易使用的构建工具,其中包括一个jar签名插件,可以作为构建的一部分调用。您所需要的只是一对私钥/公钥,它们会为您提供设置它的说明。我目前正在为这个(旧的)项目使用Ant,它只调用jarsign。我一直在为新项目使用Maven,但我会看看Gradle。我想你会更喜欢Gradle而不是Maven。Gradle与Maven对build by convention的支持相同,但完全可定制,因此它不会强制您将所有项目转换为Maven convention。它具有同样强大的依赖关系管理(它甚至可以使用Maven的存储库)。我已经将两家不同的公司从Ant转变为Gradle,从易用性和强大的灵活性两方面来说,我都非常高兴,这听起来确实很棒。我将一个应用程序转换为Maven,但要正确构建它是一种痛苦,因为我必须移动太多东西才能符合Maven惯例。谢谢你的提示。非常欢迎,希望有帮助