Tag: jarsigner

keytool和jarsigner工具

我已经开发了一个黑莓应用程序,我已经加载到BB设备。 但正如我们所知,如果不使用RIM签署应用程序,我们就无法在设备上运行该应用程序。 有没有什么方法可以创建我的应用程序的试用版几天,并在设备中运行它以进行测试。 我听说过“keytool”和“jarsigner”工具。 这个工具可以帮助我在设备上运行我的应用程序而无需签署应用程序吗? 如果是,请告诉我有关如何完成的步骤或细节。

Jarsigner:“此jar包含未validation证书链的条目。”

我在自签名的jar上遇到以下错误: jar verified. Warning: This jar contains entries whose certificate chain is not validated. Re-run with the -verbose and -certs options for more details. 我签了这样的jar子: “C:\Program Files\Java\jdk1.7.0\bin\jarsigner” -keystore myKeyStore myJar.jar myAlias 我的jar有2个入口点:一个用于java web启动,一个用于applet。 如果我以java web start方式运行jar,它没有发生。 但是,如果我将jar作为applet运行。 当我尝试访问jar中嵌入的位图资源时,我会在某些时候收到强大的安全警告。 使用-verbose和-certs选项会显示很多行。 我对此一无所知。 这是输出: output.txt (下面转载的6307行的一部分)。 s 157850 Tue Nov 08 12:57:44 CET 2011 META-INF/MANIFEST.MF X.509, O=keyja.com [certificate […]

如何validation自签名jar上的签名?

我用我用keytool生成的密钥签署了我的jar。 在运行时,如何validationjar是否未被修改? 目标是使用证书信息并validation自jar构建以来jar中的每个类都未被修改。 这是运行时检查,因此包含代码的jar可以位于用户文件系统的任何位置。

jarsigner -verify适用于Java 6,但不适用于Java 7

几天来,我一直在抨击我的头,我完全被难倒了。 这是破败的: 我有一个Eclipse插件项目,使用Tycho来构建Maven 3 在Maven中我已经设置了maven-jarsigner-plugin来使用我的密钥库来签名jar(请参阅下面的密钥库详细信息) 我有一个代码签名证书,由Thawte在我的密钥库中签名 我可以从目标/ *获取任何已签名的jar文件,并在其上运行’jarsigner -verify’。 这是发生的事情: #java 6 on a VM vagrant@test2:/vagrant/com.example.plugins.eclipse/target$ jarsigner -verify com.example.eclipse-0.1.3-SNAPSHOT.jar jar verified. 下一个: #java 7 on a completely different vm vagrant@test1:/vagrant$ jarsigner -verify com.example.eclipse-0.1.3-SNAPSHOT.jar jar verified. Warning: This jar contains entries whose certificate chain is not validated. Re-run with the -verbose and -certs options for more […]

Jarsigner:找不到证书链

我已将证书导入私有~/.keystore文件: keytool -list Enter keystore password: Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry mylyn-mantis, Jul 15, 2010, trustedCertEntry 我正试图用它签一个jar子,但我得到一个’找不到证书链’的错误。 jarsigner -verbose /home/robert/file.jar mylyn-mantis jarsigner: Certificate chain not found for: mylyn-mantis. mylyn-mantis must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain. 我怎么解决这个问题?

什么阻止Javavalidation具有多个签名算法的签名jar

快速背景:我们发布了一个webstart应用程序,其中包括我们自己的应用程序jar和众多第三方jar。 Webstart要求jnlp文件引用的所有分布式jar都由单个证书签名。 因此,我们使用自签名证书签署所有jar子(我们的jar子和第三方jar子)。 一些第三方jar子已经由生产它们的一方签署,但我们只是再次签署它们,这很好。 到现在。 问题:我们最近从Java 6迁移到Java 7,突然webstart拒绝加载一些jar,抱怨:“无效的SHA1签名文件摘要”。 这只发生在一些jar子而不是其他jar子上,并且在那些失败的jar子中出现的共同线程似乎有多个签名。 在搜索SO和互联网之后,似乎Java的jarsigner的默认签名算法在Java 6和Java 7之间发生了变化,从SHA1到SHA256,并且各种人都建议使用“jarsigner -digestalg SHA1”来解决validation问题。 我试过了,果然我们的多重签名jar子validation了。 所以这似乎是我们问题的解决方法。 从我可以收集到的内容来看,第三方签名似乎是SHA1签名,我们使用默认签名 – SHA256进行签名 – 导致签名混合。 当我使用’-digestalg’开关强制SHA1时,我们有两个相同类型的签名,现在validation工作正常。 所以似乎问题是由多个签名使用不同的算法引起的? 或者是否还有其他一些我缺失的因素。 问题: 为什么无法使用SHA1 + SHA256validation,但使用SHA1 + SHA1进行validation? 有技术原因吗? 安全政策的原因? 为什么不能validation两个签名是否正确? 使用(继续使用)SHA1而不是现在默认的SHA256有什么缺点吗?

如何以编程方式validation使用jarsigner签名的jar

我想使用jarsigner签署一个jar,然后使用一个Java应用程序validation它,该应用程序没有签名的jar作为其类路径的一部分(即只使用jar的文件系统位置) 现在我的问题是从jar中获取签名文件,有一个简单的方法吗? 我玩过Inflater和Jar InputStreams没有运气。 或者这是可以更好地完成的事情吗? 谢谢