我正在尝试通过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
窗口打印了一些证书数据和签名,并询问:是否信任此证书?
我回答是。
命令提示符显示:
已将证书添加到密钥库
然而,在该消息之后,另一个异常被显示:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
最后当我检查密钥库时,发现SSL证书未被添加,因此我的应用程序在尝试连接时仍然会出现之前遇到的异常:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)