解决unable to find valid certification path to requested target
原因
Java在访问SSL加密的网站时,需要从JDK的KeyStore 里面去查找相对应得可信证书,如果不能从默认或者指定的KeyStore 中找到可信证书,就会报这个错误。另外,Java所使用的证书仓库并不是Windows系统自带的证书管理。所以即使系统中包含此证书也不可以使用。
解决:
从浏览器下载证书安装到java证书中。
第一步是要下载证书
去你程序要访问的网站,点击那个锁按钮,并点击查看详情(chrome浏览器)
点击View certificate
点击详细信息
复制到文件
下一步
选择格式
生成的名称,最后保存
这里我保存在的D盘根目录下叫abc.cer
导入证书
切换到jre的/lib/security/下
执行如下命令
keytool -import -alias abc -keystore cacerts -file D://abc.cer
其中:
-alias 指定别名(推荐和证书同名)
-keystore 指定存储文件(此处固定)
-file 指定证书文件全路径(证书文件所在的目录)
注意:当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts, 否则应该指定全路径;
此时命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码,当然也可自行修改。
库**口令输入:changeit
将会看到如下的信息
是否信任:Y
证书导入成功
查看证书,**仍然是changeit
keytool -list -keystore cacerts -alias vbooking
至此证书导入成功。
注意:导入证书过程中,可能会遇到一个问题,如下所示
keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问)
出现这个问题的主要原因是
WIN7下的C:\Program Files以及C:\Program Files(x86)都是只有管理员权限才能访问的目录,所有写、修改操作都会遭遇”拒绝访问”,解决方案有两种:
1.将JDK安装在D盘
2.使用管理员权限打开命令行
更新证书时,先删除原来的证书,然后导入新的证书 keytool -list -keystore cacerts keytool -delete -alias akazam_email -keystore cacerts keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts
上一篇: IDEA unable to find valid certification path to requested target。PKIX path building failed
下一篇: 在服务器上安装一个maven
推荐阅读
-
AndroidStudio构建项目提示错误信息“unable to find valid certification”的完美解决方案
-
unable to find valid certification path to requested target 的简单解决办法
-
JAVA 解决 unable to find valid certification path to requested target 证书认证
-
resttemplate 调用https 出错 unable to find valid certification path to requested target
-
Android Studio出现:Cause: unable to find valid certification path to requested target解决办法
-
解决安全证书问题unable to find valid certification path to requested target 解决记录
-
AndroidStudio构建项目提示错误信息“unable to find valid certification”的完美解决方案
-
unable to find valid certification path to requested target
-
解决unable to find valid certification path to requested target
-
IDEA unable to find valid certification path to requested target。PKIX path building failed