当前位置: 首页 > 知识库问答 >
问题:

导入证书后的Java Keytool错误,“Keytool错误:Java.io.FileNotFoundException&访问被拒绝”

韦德厚
2023-03-14

我正在尝试通过HTTPS连接一个Java Web API;但是,会引发异常:

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

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

>

  • 我将HTTPS URL复制到浏览器中,下载SSL证书并使用Internet Explorer将其安装到浏览器中。

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

    使用了KeyTool的导入选项。下面的命令执行时没有任何错误。

    keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
    

    在命令提示符下提示输入密码,然后输入密码进行身份验证。

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

    信任这个证书?

    我回答是的。

    此时将显示cmd提示符

    证书已添加到密钥存储区

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

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

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

    (javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
    
  • 共有2个答案

    丰智
    2023-03-14

    我在本地密钥库中导入证书时遇到了同样的问题。每当我发出keytool命令时,就会出现以下错误。

    证书已添加到密钥库keytool错误:Java.io.FileNotFoundException:C:\Program Files\Java\JDK1.8.0_151\JRE\lib\Security(拒绝访问)

    以下解决方案为我工作。

    1)确保您以管理员模式在Rus中运行命令提示符

    2)将当前目录更改为%JAVA_HOME%\JRE\lib\security

    3)然后发出以下命令

    keytool-import-别名“mycertificatedemo”-文件“C:\users\name\downloads\abc.crt”-keystore cacerts

    3)更改密码

    4)输入y

    5)您将看到以下消息:“证书已添加到密钥库”

    确保您只给出了keystore中的参数值“cacerts”,就像我给出的完整路径“c**:\programfiles\\jdk1.8.0_151\jre\lib\security**”一样。

    我希望这能奏效

    左丘阳晖
    2023-03-14

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

     类似资料:
    • 问题内容: 我正在尝试通过HTTPS连接Java Web API。但是,将引发异常: 我遵循了从在线keytool和SSL证书教程中学到的这些步骤: 我将HTTPS URL复制到浏览器中,下载了SSL证书,并使用Internet Explorer将其安装在浏览器中。 将证书导出到计算机上的路径,证书另存为 使用了keytool的导入选项。以下命令执行无任何错误。 在命令提示符下提示我输入密码,然后

    • 将证书导出到我的计算机上的路径,证书保存为 使用了keytool的导入选项。下面的命令执行没有任何错误。 在命令提示符处提示我输入密码,然后我输入密码进行身份验证。 然而,在该消息之后,显示了另一个异常: 最后,当我检查密钥库时,没有添加SSL证书,我的应用程序给出了与我之前尝试连接时相同的异常:

    • 这个问题已经问过好几次了,但没有一个解决办法对我有效。我以管理员身份运行DOS命令窗口,但当运行keytool命令安装证书时,我得到了上面的错误: 我在Windows10上使用JDK 1.8.0_191。为什么拒绝对管理员的访问?

    • 我在Windows 10上使用JRE8,我使用的命令是: 以下是我到目前为止所尝试的: null 我总是得到同样的错误: 证书已添加到keystore keytool错误:java.io.FileNotFoundException:C:\cacerts(访问被拒绝) 我还可以做什么来将此证书导入到我的cacerts文件中?

    • 问题内容: 在某种程度上,当我尝试通过命令行访问MySQL时,已经设法解决了该错误: 我尝试使用此HowTo重置密码,但没有任何运气。 我已经卸载了mysql completley并重新安装了,但是仍然需要输入密码。我不知道为什么会这样! 有人可以帮我获得默认安装的MySQL吗? 环境 Fedora Core 10,完全根访问权限,安装了Apache和PHP 感谢您的任何帮助!! 编辑 对于所有想

    • 我最近才更新到新版本的forge,没有改变我的设置,当我去构建我的应用程序时,我得到了一个错误,说它找不到文件…