java - elasticsearch 和 searchguard ssl 的密钥库和信任库问题
问题描述
在我问这个问题之前,让我先介绍一下背景,以便我们对问题本身有一个清晰的认识。我们需要使用 searchguard ssl 来支持 Elasticsearch (v5.2.x) 的一种方式 SSL。我们有一个针对开发人员(非生产)的程序列表,负责生成自签名 SSL 证书。在这里,我们有一个根(本地创建)和实际的证书。如果我们导入密钥库(包含私钥和签名证书)和信任库(包含根证书),一切正常。
但是几天前,我们收到了一位客户的请求。在那里,在生产中我们需要支持 SSL。因此,我们按照以下步骤操作:
使用我们的脚本,我们生成了私钥,将其导入密钥库,还生成了 csr。
我们给了客户 csr。他得到了适当的 CA 签名,并把证书还给了我们。
现在,对于给定的证书,信任链的长度为 3。因此,有一个根 CA,它签署了证书 (issuer1),它签署了证书 (issuer2),然后又签署了实际的 csr。
为了将实际证书导入密钥库,我们导入了所有三个父级,然后导入了实际证书。
然后我们从密钥库中删除了所有父证书。所以,现在密钥库只有私钥和实际证书。
我们将所有三个父证书导入到信任库中。
现在,如果我们启动 Elasticsearch,就会抛出以下错误:[ERROR][c.f.s.s.t.SearchGuardSSLNettyTransport] [uyyIg3i] SSL Problem Received fatal alert: certificate_unknown
javax.net.ssl.SSLException: Received fatal alert: certificate_unknown
有趣的是,如果我们只有根 ca,则确切的程序可以工作,签署实际的 csr。感谢任何帮助找出这个问题的根本原因,因为我现在有点没有想法。
解决方案
经过几次令人厌烦的调试,我们发现 CN 名和实际主机名不同。使它们都相同后,我们就可以正常工作了。
推荐阅读
- c# - Xamarin 表单绑定。如何根据某些条件显示 3 个不同字符串中的 1 个
- python - 为什么我的 SRGAN(使用 PyTorch)结果看起来与 SRResNet 结果相似?
- metrics - 将自定义指标注册到 Micrometer 和 Spring Boot 2 时遇到问题
- jakarta-mail - 使用 Java 邮件客户端读取邮件时出现 FolderClosedIOException
- wpf - 多重绑定未设置值
- java - 顶部半径不显示角半径的cardview中的图像
- angular - 单击输入字段时防止角度材料列表行为
- python - 在 bash 脚本中运行时 pip install “解析错误”
- javascript - 为什么鼠标坐标没有出现
- linux - Sublime Text 3 中的 Package Control 出现多个错误