生成密钥库:
keytool -genkey -alias tomcat -keyalg RSA -keystore my.keystore -keysize 2048
生成证书签名请求(CSR):
keytool -certreq -alias tomcat -keyalg RSA -file my.csr -keystore my.keystore
然后我去我的主机提供商并获得一些证书。这些我安装如下:
keytool -import -alias root -keystore my.keystore -trustcacerts -file gd_bundle-g2-g1.crt
keytool -import -alias intermed -keystore my.keystore -trustcacerts -file gdig2.crt
keytool -import -alias tomcat -keystore my.keystore -trustcacerts -file my.crt
当我安装最终证书(my.crt)时,我得到了以下错误:
keytool error: java.lang.Exception: Failed to establish chain from reply
我相信我已经导入了链,并在正确的顺序,所以我很困惑这个消息。任何人都可以看到我做错了什么?
7条答案
按热度按时间7z5jn7bk1#
我刚刚发现godaddy提供给我的证书的文件都是中间证书(实际上它们看起来是同一个中间证书)。
通过双击我的证书并查看证书路径,我获得了正确的根证书和中间证书……从这里,我还可以下载这些证书中的每一个,并使用问题中使用的步骤导入它们
oyt4ldly2#
同样的问题我纠结了两个星期,直到我找到了解决的方法。问题是Godaddy证书附带的根证书和中间证书不是我需要的。我在Godaddy的存储库中找了很多次,都找不到合适的证书。
我在我的笔记本电脑上查看了我的证书(使用Windows 8.1)。在那里我看到了证书链,并且我能够导出根证书和中间证书。然后我将它们导入到我的密钥库,它就像它应该的那样工作了。
要执行此操作,请遵循以下说明:
1.在运行Windows的计算机上查看证书。您将能够在第三个选项卡上看到证书链,如下图所示。x1c 0d1x
1.从链中选择根证书,然后单击“查看证书”按钮。
1.打开一个新窗口,转到第二个选项卡并单击“保存文件”按钮。这将打开证书的导出向导。
1.导出时,选择X.509 base 64选项并按照说明操作。保存文件。
1.对中间证书重复上述步骤。
1.将两个证书上传到服务器,并按照顺序导入密钥库-首先是根证书,其次是中间证书,最后是您的证书。[不需要导入根证书]
注:在导入这些证书之前,我必须删除密钥存储库中不起作用的证书。为此,我使用了以下说明:
如果您不确定keytool中的内容,可以使用以下命令查看:
c90pui9n3#
我在Linux环境中尝试将CA认证证书导入到密钥库时遇到了相同的错误。
我遵循了一系列步骤并成功导入了它。
收到CA认证的证书后,使用以下步骤将证书导入密钥库。
步骤1:
使用以下命令将根证书导入到位于JAVA_HOME/jre/lib/security文件夹的cacerts:
一旦你输入上面的命令,它会提示密码,输入密码,然后点击是。
第二步:
使用以下命令导入根证书:
一旦你输入上面的命令,它会提示密码,输入密码,然后点击是。
第三步:
使用以下命令导入中间证书:
一旦你输入上面的命令,它将提示替换已经存在的证书,输入yes。
注意:中间证书是可选的可以忽略,它自带根证书.
第四步:
使用以下命令导入站点证书:
执行此命令的环境是java版本7。证书由GODADDY颁发。
欲了解更多信息,请访问网站:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html#importCertCmd
wd2eg0qa4#
要解决此问题,请在keytool命令中使用额外的开关(-trustcacerts)。
将中间证书从中间.cer文件导入到certificates.ks密钥库文件的命令应如下所示:
keytool -storetype JCEKS -storepass passwd -keystore certificates.ks -import -alias intermediate**-trustcacerts**-file intermediate.cer
将证书从http.cer文件导入certificates.ks密钥库文件的命令应如下所示:
keytool -storetype JCEKS -storepass passwd -keystore certificates.ks -import -alias http**-trustcacerts**-file http.cer
重新尝试完成已签名SSL证书的创建和导入过程。
xv8emn3q5#
下载证书链,在Windows上打开它-它存储CA证书和来自CA的证书答案。
首先将CA证书导入到您的密钥库,然后从CA导入应答。
sz81bmfz6#
在将证书导入本地密钥存储之前,以下步骤非常重要。
使用以下命令将根证书导入到位于JAVA_HOME/jre/lib/security文件夹中cacerts:
keytool -importcert -alias root -file [root certificate] -keystore cacerts一旦你输入上面的命令,它会提示输入密码,输入密码并点击yes。
zkure5ic7#
Tomact 7.0的正确步骤是
步骤1.生成密钥存储
keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
步骤2.生成CSR文件
keytool -certreq -keyalg RSA -alias tomcat -file your.csr -keystore tomcat.keystore
步骤3使用证书提供商(如GoDaddy)提供的CSR文件生成证书并下载证书。
步骤4下载证书并导入Bundle Crt first keytool -import -alias intermed -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt
步骤5下载证书并导入主证书。keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file f4edf60egajgfafgaf.crt
检查是否正确包含密钥库的命令
keytool -list -keystore tomcat.keystore