java.net.UnknownHostException: www.xxx.com: Name or service not known的某种情况

我一般只记录不是网上给出的大众答案。

很明显很多人搜到的结论是:

修改服务器hosts文件:
vi /etc/hosts

添加记录行:
127.0.0.1   www.xxx.com

这只是把这个无法识别的域名映射到本地了,有点掩耳盗铃。我是真的需要访问这个www.xxx.com提供的接口,所以不能用改host解决。

搜到的别的奇形怪状的解释我就不提了,我这里出现的问题是:

这个www.xxx.com的接口提供者要求使用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是默认密码。

 

你可能感兴趣的:(杂烩,java)