签署.Jar文件

我坐着有点问题。 我正忙着为我们的支持团队创建一个php / html网站(intranet),以便在支持linux机器时让生活更轻松。

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

但是根据他们的站点,你必须在将它作为applet加载之前签署.jar文件,否则它无法打开tcp连接。

所以我在我的时间里做了尽可能多的研究,并提出了JDK安装中提供的jarsigner.exe和keytool.exe文件。

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

有帮助吗?

谢谢

首先使用keytool创建一个密钥对。

 keytool -genkey -alias somekeyname 

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

 jarsigner /path/to/jar somekeyname 

注意,您需要使用与创建密钥的别名相同的别名( somekeyname here)。

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

由于我假设您仅在组织内部使用applet,因此自签名证书应该没问题。 否则你将需要支付证书。 在这种情况下,您的用户不需要在第一次之后接受证书(如果他们选择“始终允许”)。

您可以使用以下方式签名jar子:

安装这个Eclipse插件

Eclipse Webstart插件。

您只需要导出为“Webstart”。 它会提示您在jar子上签名。

DEMO

这是一个有点复杂的领域,你基本上需要知道你在做什么,你可能需要为签署证书支付真金白银。

Sun Java Tutorial很好地介绍了这个主题: http : //docs.oracle.com/javase/tutorial/deployment/jar/signing.html

如果目的是为支持人员提供ssh客户端,那么可能会有更好的解决方案。

将最佳答案与一些 有用的 提示结合起来,以获得完全无瑕疵的脚本:

 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