使用服务器证书对Java JAR文件进行签名

8
可以使用服务器证书签署Java Web Start应用程序吗?我想知道这是否可行。我有一个受信任的服务器证书,并且我想重复使用相同的证书来签署应用程序。
现在,我收到以下警告:
此jar包含条目,其签名者证书的ExtendedKeyUsage扩展不允许代码签名。此jar包含条目,其签名者证书的NetscapeCertType扩展不允许代码签名。
我能否启动我的应用程序而无需出现证书未受信任的警告?

在您的情况下奏效了吗?我的意思是,使用为网站获取的SSL证书对JAR签名也有用,您的经验将会很有帮助 :) - Amogh
@Amogh SSL证书是用于通过https通信的网站/ Web应用程序。对于独立应用程序,您需要不同的证书。 - Miguel Ping
2个回答

12

如果您不使用代码签名证书,系统会发出警告。对于大多数颁发机构来说,代码签名证书的成本比服务器证书更高。我认为这只是一种营销策略,让你再支付另一个证书的费用。实际上两个证书之间没有技术上的区别。有些颁发机构可能会提供同时适用于两者的组合交易。


我已经在签署JAR文件时收到了警告。你的意思是说,当运行应用程序时我也会收到警告吗? - Miguel Ping
即使您使用正确的证书运行JAR时,您仍会收到通知。但在你的情况下,你还会收到一个警告。不幸的是,大多数用户看不到这种区别 :( - ZZ Coder
2
你需要一个真正的代码签名证书。请参考http://stackoverflow.com/questions/155241/cheapest-java-code-signing-certificate-not-self-signed,了解如何以便宜的价格获得它们的建议。 - CarlG

0

我假设您已经使用SSL的KEY和CRT创建了JKS文件,因此出现了错误..

我这里有一个简单的解决方案:

正如您所知,您可以使用以下命令创建JKS

keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

当您使用此JKS时,您会收到自签名认证消息,这对于在Google Play商店上发布应用程序来说是绝对可以接受的。但是,如果您负担得起,购买代码签名证书是很好的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接