解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat
Java  /  管理员 发布于 2年前   254
如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
产生原因是jdk的证书库里并没有将该站点的证书作为受信任的安全证书。
解决方法是导该站点的证书,将此证书导入到java的信任证书库中。
要注意的是,在win7或更高的系统中,运行一定要以管理员身份运行CMD,Mac os 要用sudo -i 命令切换为 root用户,否则会报以下错
keytool错误: java.io.FileNotFoundException:
把证书导入java的cacerts证书库的步骤:
第一步:IE打开网站,把要导入java证书库的证书下载
在该网页安全警报弹出窗口上查看证书--详细信息--复制到文件
会弹出一个证书导出向导对话框,按提示一直下一步直到完成。
我把证书保存在C盘,名字为NEXT_CertKey.cer 或是 xxxx.der。
第二步:将上面导出的证书导入java中的cacerts证书库
windows cmd进入C:\Program Files\Java\jdk1.5.0_06\jre\lib\security目录
mac os 终端进入 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security
敲入如下命令回车执行
keytool -import -alias cacerts -keystore cacerts -file C:\NEXT_CertKey.cer -trustcacerts
此时命令行会提示你输入cacerts证书库密码,
java中cacerts证书库默认密码为changeit,
Y确认即可,OK,认证已添加至keystore。
博主 在
centos7中Meili Search搜索引擎安装流程步骤中评论 @鹿 执行以下命令看看你的2.27版本是否存在strin..鹿 在
centos7中Meili Search搜索引擎安装流程步骤中评论 这是我的错误提示,下载了对应的glibc-2.25.tar.gz后续按照教程操作..阿凡达123 在
golang 怎么做热更新中评论 也可以看看这个:https://github.com/edwingeng/hot..博主 在
hyperf框架常用命令-在centos7中退出命令及在docker容器中退出命令中评论 @路过的靓仔:cdn静态资源被墙,已修复..GGGGGGGGG 在
layui框架常用输入框介绍中评论 写的很好解决问题..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号