用keytool进行签名报“无法从回复中建立链接”

论坛 期权论坛 脚本     
匿名技术用户   2020-12-21 22:28   251   0

转自“小小的一亩田”的博客

更换服务证书的时候遇到这个问题,GOOGLE了一下,发现没答案。

研究了一会会儿,发现问题所在。其实很简单。

深为国内同行们觉得惭愧,不仅是懒,还大多通常不愿意分享自己的知识。GOOGLE技术问题常常会发现,一个中文答案抄来抄去,没人讨论也没人验证。。。或者干脆只有问没有答。。。唉!

企图答案共享,于是把这个问题贴到“百度知道”去了,结果居然发现还不能自问自答,说是有骗积分的嫌疑。。。$!$%%^%!! 谁稀罕那什么破积分啊?

直接在BLOG里写答案~ 啦啦啦~

-------------问题

把CA签名后的server端证书导入keystore出错的问题:
C:\tomcat>keytool -import -alias tomcat -keystore c:\tomcat\keystore -trustcacer
ts -file c:\tomcat\1.cer
输入keystore密码: 123456
keytool错误: java.lang.Exception: 无法从回复中建立链接

-------------答案

在导入服务器证书之前,需要导入一个中级CA根证书。这个CA根证书的有效期很长,一般不用更换。所以大多数人在导入中级CA根证书时会使用旧的证书。

当这个中级CA根证书有更新,导入中级CA根证书步骤仍使用旧的中级CA证书时,此步骤不会报错。但再导入基于新的CA根证书生成的服务器证书,就会报“java.lang.Exception: 无法从回复中建立链接”。

所以,解决问题的方法很简单,下载新的中级CA根证书,删除keystore里已经导入的原来的CA根证书,重新导入新的CA根证书,再导入服务器证书,就没问题了。

解决步骤如下(假设已经导入了旧的CA证书又没有备份原来的keystore):

1、删除旧的CA根证书,假设CA根证书导入时的别名是root。

keytool -delete -alias root -keystore c:\cert\keystore

2、到网站上找到新的CA根证书,COPY内容,PASTE到某个文件中,如 c:\cert\newroot.cer

3、添加新的CA根证书,假设新的CA根证书导入时的别名也为root(名字自定)。

keytool -import -alias root -keystore c:\cert\keystore -file c:\cert\newroot.cer

4、再次导入服务器证书,假设服务器别名是server,颁发的服务器证书贴在server.cer里。

keytool -import -alias server -keystore c:\cert\keystore -trustcacerts -file c:\cert\server.cer

以上步骤都需要输入证书密码,根据自己的实际情况更换证书所在的目录和文件名。

------------- 打完收工~

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP