升级JAVA10后不能访问阿里巴巴开放接口的解决方法

项目升级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
证书已添加到密钥库中

经此操作后访问恢复正常。

你可能感兴趣的:(升级JAVA10后不能访问阿里巴巴开放接口的解决方法)