2013-06-19 86 views
6

我坐在一个有点问题。我正忙于为我们的支持团队创建一个php/html网站(内联网),以便在支持linux机器时让生活变得更轻松。签名.Jar文件

我有一个名为mindterm(免费版)的.jar应用程序,并且希望将其作为applet在网站中运行。

然而,根据他们的网站,你必须有加载它作为一个小程序,否则不能打开的TCP连接前的.jar文件签署。

所以我做了尽可能多的研究,我可以在那时我已经与在JDK安装提供的jarsigner.exe和keytool.exe的文件走了过来。

但是我不知道如何去签署这个应用程序,以便我可以真正使用它。

任何帮助?

由于

+0

你的问题不是签名过程,它是你需要的证书和私钥。这个“Java代码签名证书”必须由信任中心购买。 – Robert

回答

13

首先创建使用keytool密钥对。

keytool -genkey -alias somekeyname 

然后用jarsigner用刚刚创建的密钥对它进行签名。

jarsigner /path/to/jar somekeyname 

注意,您需要使用相同的别名(somekeyname这里)随着创建的关键之一。

现在,由于证书是自签名的,因此将提示您的小程序的用户批准证书。一旦他们这样做,你的tcp连接应该工作。

由于我假设你只在组织内部使用小程序,所以自签名证书应该没问题。否则,你将不得不支付证书。在这种情况下,用户将不再需要接受后的第一次证书(如果他们选择始终允许“)。

+0

感谢您的信息将尝试尽快。一切都是在内部完成的,所以我们不会过分关注拥有自我认可的证书 – Stroes

+0

你SIR值得一杯啤酒! – Stroes

+0

*“否则你将不得不支付证书费用,在这种情况下,你的用户不需要手动接受证书。”*购买证书不会绕过安全对话框,它只是让它们变得更漂亮并且记住'总是允许'。 ;) –

1

您可以使用以下方式签署罐子:

安装此Eclipse插件

Eclipse Webstart Plugin.

你只需要导出为 “Webstart的”。它会提示你签署罐子。

DEMO

0

结合someusefulhints顶部答案得到完全unattanded脚本:

keytool -genkey -noprompt -alias Alias -dname "CN=Hostname, OU=OrganizationalUnit, O=Organization, L=City, S=State, C=Country" -keystore path.to.keystore -storepass password -keypass password -validity 3650 
jarsigner -keystore path.to.keystore -storepass password -keypass password -signedjar signed.jar unsigned.jar Alias