提示
X
本案例来自tskb,请前往tskb修改源内容:立即前往
'>

【AD】SSL证书合成证书链

|

问题描述

使用AD做了SSL卸载,苹果手机或者其他客户端访问正常,但是安卓手机访问会提示:网站证书不可信且证书链长度为1,可能是服务器没有配置完成的证书链,或者是直接空白。

告警信息

登录告警信息如下截图:

处理过程

根因

苹果和安卓系统的证书管理器里面内置根证书存在差异,所以会出现不一样的效果,根据上面的提示:证书链不完整,这个大多数情况下就是证书链不完整,可以从AD控制台导出SSL证书(PEM格式),解压如下:

双击打开,如下的证书链:

使用Notepad++工具打开如下:
可以看出里面只有一张证书,并没有证书链,这就是问题所在。
注意:以上信息也可通过抓包分析,查看数据包里面服务器(AD)下发给客户端的证书是否完整。

解决方案

证书是由正规机构颁发的,那么对应的根证书肯定在操作系统证书管理器中,毕竟是花钱颁发的证书,证书公司会和微软等操作系统公司合作直接内置其根证书在操作系统中,这就是由CA机构颁发证书与AD设备自己生成证书的区别;所以想要合成证书链,根证书直接从客户端导出即可。
1、首先把导出来的证书导入到浏览器里面



提示导入成功之后,在从IE里面导出来。
2、再从IE里面导出来,导出所有的证书如下,再导出来是巧妙利用IE浏览器的特性,可以自动找到对应的全部证书链,节省时间。


3、导出根证书
   双击打开刚才导出的证书,如下:
第一个是设备证书,第二个是二级证书,第三个是根证书;第一张证书已经有了,接下来需要导出第二个及第三个证书,如下(以导出二级证书为例),选中右键,选择【所有任务】-【导出】,如下图:

下一步:

下一步,文件名根据自己习惯起,路径随便选择:

导出成功:

根证书是一样的方法导出即可。
4、合成证书链
导出的三张证书:server.crt是设备证书、二级证书及根证书

新建一个txt文档,使用Notpad++打开,把3张证书以:设备证书、二级证书、根证书的顺序复制进txt文档里面,如下图:

之后保存,扩展名直接更改成crt(公钥格式)即可,如下图:

把合成的证书链及私钥导入设备即可。

建议与总结

验证方式:可以在客户端抓包,看ssl握手阶段Certificate 报文是否下发全部的证书链证书。
钟勇晨 发表于 2020-5-9 23:24
  
感谢老哥的分析,写的很详细
辣条er 发表于 2021-3-18 11:02
  
文章结构不太清晰,很难看懂,建议用通俗易懂的文字表达!
满船清梦压星河 发表于 2021-4-13 22:59
  
非常有用,感谢老哥的分享
jaky911 发表于 2021-10-26 09:14
  

不错,可参考的案例。感谢分享
陌上 发表于 2022-8-27 22:33
  
学习了,感谢大佬的分析

我要分享
文档编号: 46887
作者: sangfor_2134
更新时间: 2018-10-29 09:41
适用版本: