项目升级JAVA10后调用阿里巴巴API报错SunCertPathBuilderException: unable to find valid certification path to requested target.
问题的原因
JAVA10自带的keystore没有包含阿里巴巴API接入点(Gateway)的服务端证书,导致不能创建https连接。
解决方法
导入https://gw.api.alibaba.com的证书到JDK的keystore中即可。
步骤
访问https://gw.api.alibaba.com,保存服务端证书到本地文件。我用的是Edge,其他浏览器应该也可以。保存的文件名为alibabacom.crt
。
keytool.exe -importcert -cacerts -file alibabacom.crt
输入密钥库口令:
所有者: CN=*.alibaba.com, O="Alibaba (China) Technology Co., Ltd.", L=HangZhou, ST=ZheJiang, C=CN
发布者: CN=GlobalSign Organization Validation CA - SHA256 - G2, O=GlobalSign nv-sa, C=BE
序列号: 5361f5d0d35fe62ec9b6a503
生效时间: Tue Mar 27 10:36:02 CST 2018, 失效时间: Sun Nov 04 21:06:02 CST 2018
证书指纹:
SHA1: F3:6F:38:26:ED:BE:EB:58:4E:CA:AE:3D:E5:94:49:0C:59:D5:C9:27
SHA256: 79:0A:69:6A:48:98:FF:EF:DC:8E:18:2B:F0:BA:8D:97:A4:8C:E6:1A:3F:18:82:56:83:20:F3:2C:F2:BF:D3:75
签名算法名称: SHA256withRSA
主体公共密钥算法: 256 位 EC 密钥
版本: 3
......
<此处忽略n行>
......
是否信任此证书? [否]: y
证书已添加到密钥库中
经此操作后访问恢复正常。
网友评论