使用keytool构建双向SSL过程中遇到的问题
最近在做一个使用数字证书的项目,其中想构建一个HTTPS(基于SSL安全套接字协议)的网站,
我使用Tomcat来作为服务器容器,但是不管用什么配置上都是类似的,唯一的就是需要搞定KeyStore文件。
当然,网上有很多教程,但是因为我是一天弄一点,时间很零散,所以出现了一些问题。
想跟大家分享一下,希望即使大家遇到,也能作为一个参考。
1、导入自己向CA申请的证书,但是HTTPS连接中使用的证书,仍然是自颁发证书,显示为不安全连接
最开始遇到这个问题,我比较苦恼,因为自己辛辛苦苦搭建的CA中心,居然没法使用,一度相当郁闷,
Tomcat的官方文档上也没有写的很详细,都是按照上面的指示导入证书的。
直到看到一篇帖子讲导入的我们的证书的别名一定要自颁发的证书别名一样,让他们合并为一个,
才能够使我们从CA申请的证书有效。
解决办法:导入自己的证书时,alias使用与私钥别名一致。
PS:请留意导入CA根证书和导入服务器证书时的提示信息,如果您在导入服务器证书时使用的别名
与私钥别名不一致,将提示“认证已添加至keystore中”而不是应有的“认证回复已安装在keystore中”。
2、keytool错误:回复中的公共密钥 keystore不匹配
这个错误,是在向keystore文件中导入自己向CA请求的证书时,报出的错误。
本来是按照帖子一样的来做的的,人家没有报错,所以很不理解,但是后来仔细想想如果私钥和我们证书中的公钥不匹配,
是肯定无法将这个私钥和公钥合并,所以我重新完整的申请了私钥,然后导出请求文件,申请公钥,最后成功了。
解决办法:重新导出私钥的申请文件,去CA重新申请一个公钥,然后再次尝试。
3、无法从回复中建立链
出现这个错误,是因为没有先导入CA根证书,所以导入自己的证书时,无法确定CA的颁发链。