java - 当我从命令行启动 java 应用程序时,我可以防止数字签名警告吗?

标签 java windows keystore keytool security-warning

有什么方法可以避免在命令行运行Java应用程序时出现“无法验证应用程序的数字签名”的警告信息?

我正在寻找一个命令行解决方案,它允许在持续集成服务器上启动这样的应用程序,因此我需要一个不需要手动干预的解决方案。

此外,我不希望对任何 应用程序禁用此警告,因为这可能存在安全风险。

不确定是否有帮助,但我知道签名的“名称”、“发布者”和“来自”字段的值。

screenshot of java digital signature warning

请确定,我不是在询问如何签署此申请。

更新1

我想解决方案是使用 keytool 从命令行导入证书,但由于某种原因它确实无法正确导入它,因为在此之后它没有出现在控制面板小程序中,并且应用程序仍然需要它。

keytool -importcert -file my.cer -alias alf2 -storepass changeme -noprompt

它是否与默认 keystore 相关,我如何确保导入正确的 keystore?

更新2

在网上进行大量研究后,我取得了一些进展,至少在 Windows 7Java 6 上工作:keytool -importcert -file my.cer -keystore "%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs"-storepass ""-noprompt -v

我看起来 Sun 未能在文档中指定默认 keystore 的真实位置以及默认密码为空的事实。

但这还没有结束,因为当它在自动化用户帐户上运行时它失败了,它失败是因为该用户还没有 keystore 并且因为命令行工具 keytool 不能使用空密码创建 keystore ,要求至少 6 个字符。 see Sun's forum tread...

最佳答案

trusted.certs 文件是基于用户(配置文件)的。使用 keytool 也可以将受信任的根 CA 添加到“cacert”文件,其中存储了 java 的默认受信任 CA。 XP 上的 cacert 文件位置(取决于 Java 版本):C:\Program Files\Java\jre6\lib\security

更多细节在这里:

默认密码是:changeit

关于java - 当我从命令行启动 java 应用程序时,我可以防止数字签名警告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3750274/

相关文章:

java - Java 中的随机 GUID(一种不同的格式)

java - Java中的Max-Flow图模拟

java - 通过java编程将java keystore转换为PFX

java - 我如何知道哪个别名包含 Java keystore 中的证书和私钥?

java - keytool error keystore 被篡改,或密码不正确

Java 配置文件不特定于目录

java - 无法使用 gradle 安装库

c++ - 在运行时在 v110 可执行文件中使用 v90 COM dll 是否安全?

c++ - 32 位程序无法捕获在 32 位进程上进行的击键,但能够捕获在 64 位进程上进行的击键

windows - 当我启动另一个应用程序时,已安装的程序出现 "windows Installer"