导入非法证书,OCKD进程启动时出现coredump
问题现象描述
开启ZooKeeper安全特性时,在启动OCKD进程时出现如图1所示的core dump错误信息。
使用gdb打开对应core dump文件查看堆栈信息显示为ZooKeeper Client调用OpenSSL库的证书校验函数错误,如图2所示。
关键过程、根本原因分析
由于开源组件ZooKeeper Client自身的实现机制,在处理无效证书时,可能导致进程出现core dump错误。
结论、解决方案及效果
开启ZooKeeper安全特性时,如果使用的ZK相关证书非法,OCKD与ZooKeeper的建链就会失败,启动OCKD进程也会失败。由于OmniShuffle特性只做了证书有效期的校验,不能拦截所有的异常证书,因此无法完全避免将非法证书传递给ZooKeeper Client去处理的情况。因为证书不是本特性提供,如果出现了上述情况,请用户先检查证书的合法性,再使用ZooKeeper安全特性。
常见的证书异常类型,包括但不限于以下场景:
- 证书密钥用法扩展不符合X.509v3。
- 根证书和本地证书对应的颁发者信息无效。
- 证书签名字段失效。
- Common Name字段失效。
- 多级证书认证,中间一级缺失。
- 证书已过有效期。
父主题: 故障排除