我正在尝试通过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)
keytool
已执行的确切命令,并将其输出?这里一些明显的问题是-keystore
论据的错字,以及keytool无法找到将密钥导入到其中的密钥库的事实