Java 网络启动 : howto share certificate with users

标签 java security java-web-start

我开发了一个使用 Java Webstart 的应用程序。它需要对磁盘的写入权限,因此必须对其进行签名,但它只会由有限的用户组使用,因此我不想为受信任的证书付费。

让用户信任我的应用程序/自签名证书的最简单选项是什么?我不希望他们使用 keytool 因为它不是真正的用户友好。我想创建一个可以通过 Java 控制面板导入的证书,并首先尝试使用以下命令创建一个可导入的证书:

keytool -genkeypair -keystore patrickgotthard.jks -alias patrickgotthard
keytool -exportcert -keystore patrickgotthard.jks -alias patrickgotthard -file patrickgotthard.cer

但是无法导入生成的.cer 文件。然后我找到Cannot import certificate into java control panel并使用了以下命令:

keytool -genkey -alias patrickgotthard -keystore patrickgotthard.p12 -storetype pkcs12

但据我了解,.p12 文件还包含我的私钥 - 我认为不应该共享私钥?!你能告诉我如何创建一个可以通过 Java 控制面板导入但不包含我的私钥的自签名证书吗?或者您知道解决我的问题的更好方法吗?

最佳答案

在这种情况下,检查 SHA1 可能就足够了与用于签署 JAR 的自签名证书关联的指纹:

  • 使用您的自签名证书签署 JAR。

  • 使用 keytool -v -list 确定证书的指纹。

  • 以双方同意的方式传达证书的指纹。

  • 指示用户将您的安全站点添加到 Security 中的异常(exception)站点列表 Java 控制面板 选项卡;这允许用户保留推荐的最低安全级别设置,

  • security prompt ,点击更多信息,将传送的指纹与收到的指纹进行比较。

此方法不授予信任,但它降低了用户接受更改后的 JAR 的风险。

附录:文章Self-signed certificates for a known community讨论如何导出自签名证书。然后,社区成员可以根据需要导入证书。

关于Java 网络启动 : howto share certificate with users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529521/

相关文章:

php - 如何保护 PHP 图片上传脚本免受攻击?

java.util.zip.ZipException : duplicate entry: META_INF/LICENSE. txt

Java native 内存使用

Java - 字符串数组 - 检查某个元素是否是其他字符串的一部分(未找到 "Duplicates")

java - Jooq:从 SortField 中提取值

javascript - 将评论中的 URL 解析为链接

java - 如何在 HashMap 中保留未确定的数据类型?

linux - Apache 领域安全吗?

java - 无法启动基于 Java Web Start JNLP 的应用程序(单签名 JAR)

java - 如何在 .exe 中包装 Java Web Start?