java - 为什么要签署我的 JAR 文件?

标签 java jar signed-applet

我为什么要签署我的 JAR 文件?

我知道我需要对我的客户端 JAR 文件(包含 Applet)进行签名,以便可以完成文件系统访问等特殊操作,并且不会显示窗口底部令人讨厌的部分,但为什么会这样?我是否需要对包含 Servlet 等的服务器端 JAR 文件进行签名?

一些关于何时和何时不签署 JAR 的基本规则将不胜感激 - 谢谢!

最佳答案

简短的回答 - 不要,除非您的公司政策强制您这样做。

长答案
签署 jars 有效地告诉您的客户“我做了这个,我保证它不会弄乱你的系统。如果是这样,来找我报仇”。这就是为什么从远程服务器(applet/webstart)部署的客户端解决方案中签名的 jar 比未签名的解决方案享有更高的特权。

在服务器端解决方案上,您不必安抚 JVM 安全需求,此保证只是为了让您的客户安心。
签名 jar 的坏处是它们的加载速度比未签名的 jar 慢。慢多少?它受 CPU 限制,但我注意到加载时间增加了 100% 以上。此外,补丁更难(你必须重新签名 jar),类补丁是不可能的(单个包中的所有类必须具有相同的签名源),并且拆分 jar 成为一件苦差事。更不用说您的构建过程更长,而且正确的证书需要花钱(自签名几乎没用)。

因此,除非您的公司政策强制您这样做,否则不要在服务器端对 jar 进行签名,并将常用 jar 保存在已签名和未签名版本中(已签名转到客户端部署,未签名转到服务器-side 代码库)。

关于java - 为什么要签署我的 JAR 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/968565/

相关文章:

java - Admob 没有来自广告服务器的填充 - 无法加载广告 : 3

java - 控制 jar 工件的 Maven 最终名称

Java 不支持的类版本错误 8240.8224

java - 如何为 Applet 签名 Jar 文件?

java - 自签名小程序..只有套接字权限?

java - 使用 Java 自定义 Matlab 按钮外观

Java 进程大小 32 位与 64 位

java - 我想从 firebase 存储中检索视频

java - 声音将在 Eclipse 中播放,但不会在导出的 jar 文件中播放

java - 为什么这个小程序无法在 IE 上加载?