当您从命令行运行 Java 应用程序时,是否有任何方法可以防止出现“无法验证应用程序的数字签名”警告消息?
我正在寻找一个命令行解决方案,它允许在持续集成服务器上启动这样的应用程序,所以我需要一个不需要人工干预的解决方案。
此外,我不希望对任何应用程序禁用此警告,因为这可能存在安全风险。
不确定是否有帮助,但我确实知道签名的“名称”、“发布者”和“发件人”字段的值。
请确保,我不是在问如何签署此应用程序。
更新 1
我想解决方案是用来keytool
从命令行导入证书,但由于某种原因它确实无法正确导入它,因为它没有出现在控制面板小程序中,并且应用程序仍然需要它。
keytool -importcert -file my.cer -alias alf2 -storepass changeme -noprompt
是否与 default 有关keystore
,我如何确保导入正确的密钥库?
更新 2
在网上进行了大量研究后,我取得了一些进展,至少在Windows 7
以下方面工作Java 6
:keytool -importcert -file my.cer -keystore "%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\security\trusted.certs" -storepass "" -noprompt -v
我认为 Sun 未能在文档中指定默认密钥库的实际位置以及默认密码为空白的事实。
但这还没有结束,因为当它在自动化用户帐户上运行时失败了,它失败了,因为该用户还没有密钥库,并且因为命令行工具keytool
无法使用空密码创建密钥库,请求在至少 6 个字符。看Sun的论坛...