一尘不染

导入证书后 Java Keytool 错误,“keytool 错误:java.io.FileNotFoundException & Access Denied”

all

我正在尝试通过 HTTPS 连接 Java Web API;但是,抛出异常:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException

我遵循了从在线 keytool 和 SSL 证书教程中学到的这些步骤:

  1. 我将 HTTPS URL 复制到浏览器中,下载 SSL 证书并使用 Internet Explorer 在浏览器中安装它们。

  2. 将证书导出到我的计算机上的路径,证书保存为.cer

  3. 使用 keytool 的导入选项。下面的命令执行没有任何错误。

    keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
    
  4. 在命令提示符处提示我输入密码,然后我输入了密码,然后通过了身份验证。

  5. cmd窗口打印了一些证书数据和签名,并提示我以下问题:

相信这个证书?

我回答是的。

  1. 显示的cmd提示符

证书已添加到密钥库

但是,在该消息之后,显示了另一个异常:

    keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>

最后,当我检查 keystore 时,没有添加 SSL 证书,我的应用程序给出了与我之前尝试连接时相同的异常:

(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)

阅读 47

收藏
2022-09-04

共1个答案

一尘不染

如果您没有在管理员模式下运行命令提示符,则可能会发生这种情况。如果您使用的是 Windows 7,则可以运行,输入 cmd 并按
Ctrl+Shift+enter。这将以管理员模式打开命令提示符。如果没有,您也可以转到开始 -> 所有程序 -> 附件 ->
右键单击​​命令提示符,然后单击“以管理员身份运行”。

2022-09-04