Java爬取https网址抛出SunCertPathBuilderException: unable to find valid certification path to requested target
是因为 $env:JAVA_HOME/lib/security/cacerts
中没有对应的CA,需要手动将SSL证书加入
亲测下列解决步骤适用于Win10和Win11
下载证书
以Chrome为例
.
.
.
.
保存类型保持默认即可
.
之后得到一个.crt后缀的证书文件
导入证书
以管理员权限打开powershell,因为需要修改C盘中非用户目录的文件
1 | .$env:JAVA_HOME/bin/keytool -importcert -trustcacerts -alias <alias> -file "<path to your crt>" -keystore "$env:JAVA_HOME\lib\security\cacerts" |
重新运行代码,发现已经不报错了
参考
[2] https://blog.csdn.net/qq_41655194/article/details/108861451