我一般只记录不是网上给出的大众答案。
很明显很多人搜到的结论是:
修改服务器hosts文件:
vi/etc/hosts
添加记录行:
127.0.0.1
这只是把这个无法识别的域名映射到本地了,有点掩耳盗铃。我是真的需要访问这个提供的接口,所以不能用改host解决。
搜到的别的奇形怪状的解释我就不提了,我这里出现的问题是:
这个的接口提供者要求使用https访问,并且给了我两个证书:Intermediate.crt和Root.crt。
我以为Root.crt证书没用,因为在导入的时候提示已存在,于是就没导入Root证书,仅仅导入了Intermediate证书。后来我导入了Root.crt就好了。
真是有点神奇。
导入证书的命令:
我把两个证书文件放在了服务器目录:/opt/java/Certs/
jdk目录是:/opt/java/jdk1.7.0_79
keytool -import -alias "SACServer" -keystore "/opt/java/jdk1.7.0_79/jre/lib/security/cacerts" -file "/opt/java/Certs/Intermediate.crt"
keytool -import -alias "RootSACServer" -keystore "/opt/java/jdk1.7.0_79/jre/lib/security/cacerts" -file "/opt/java/Certs/Root.crt"
可以使用以下命令查看证书:
keytool -list -v -alias SACServer -keystore "/opt/java/jdk1.7.0_79/jre/lib/security/cacerts" -storepass changeit
keytool -list -v -alias RootSACServer -keystore "/opt/java/jdk1.7.0_79/jre/lib/security/cacerts" -storepass changeit
changeit是默认密码。