docker - x509: 无法验证 <> 因为它不包含任何 IP SAN - Hyperledger Fabric-CA
问题描述
我正在尝试使用其根证书颁发机构注册一个中间证书颁发机构,我正在使用 TLS,并且 CA 使用 fabric-ca 映像在单独的 docker 容器中运行。如果我通过 docker 网络发送 CSR 没有问题,但如果我尝试通过本地网络发送它,我会遇到这个问题:x509:无法验证“HOST_IP”的证书,因为它不包含任何 IP SAN。我读到我的问题的原因是 TLS 证书不包含 IP SAN(IP 主题替代名称),这是 TLS 证书中的一个字段,基本上说:“证书已颁发给主机它的IP是:<1.2.3.4>”。那么,如果这是问题所在,我如何将此字段添加到我的证书中?如果没有,问题是什么,我该如何解决?谢谢并恭祝安康!
解决方案
您可以按照此处给出的解释处理类似的 IP SANS 问题。HLF邮件列表中也有 IP SANS 问题的详细说明。还要确保在使用 Fabric CA 客户端时,要生成证书,请使用服务器的主机名来请求相同的证书。例如fabric-ca-client enroll -d --enrollment.profile tls -c <client configuration file> -u https://admin:adminpw@<server hostname>:7054 --csr.hosts $PEER_HOST
。如果在 URL 中给出 IP 地址,则 TLS 握手将bad TLS certificate
在服务器端失败,并在客户端出现“证书不包含 IP SANS”错误,因为用于与服务器执行握手的 ca-cert.pem 包含主机名而不是IP 地址。
推荐阅读
- delphi - Delphi - 将记录作为窗口消息发送
- wpf - 数据网格行中文本的默认字体大小是多少?
- ios - FacebookShare 0.3.2 Swift ShareDialog 控制台错误
- c - setbuf() - printf() 和 write()
- ruby - ruby excel - 将数据写入现有的xls
- css - CSS覆盖与相同的其他颜色
- scala - 一个简单的 Akka Http 请求与 curl 请求有很大不同吗?
- java - Urban Airship 在成功发送日程推送通知后抛出错误
- javascript - 如何记忆 jquery ajax 响应?
- python-3.x - Python:键错误