SSL:证书签名失败

SSL:证书签名失败

情况是:

  • 有一个根证书(“自制”)
  • 有一个由前一个签署的“中间”证书(也是一个“自制”)
  • 有两个主机(A),上面的(CA)证书已安装在
    /etc/ssl/证书/
  • 在主机 A 上有一个证书C1(由中间CA签名)和私钥K1配置为由网络 (SOAP) 侦听器使用。
  • 在主机 B 上有一个证书C2(由中间CA签名)和私钥K2配置为由网络 (SOAP) 侦听器使用。

在主机上A我可以成功使用两台主机的网络服务并在主机上发出命令A

openssl s_client -connectA:18080
openssl s_client -connect:18080

都返回

...
验证返回码:0(确定)
...

然而在主机上我无法成功使用任何网络服务(证书未验证)并在主机上发出命令

openssl s_client -connectA:18080
openssl s_client -connect:18080

都返回

...
验证返回码:7(证书签名失败)
...

当验证成功时,上述命令的输出包含:

已连接(00000003)
深度 = 2 C = CX、ST = SX、L = Loc、O = 组织、电子邮件地址 =[电子邮件受保护]
验证返回:1
深度 = 1 C = CX、ST = SX、L = Loc、O = 组织、电子邮件地址 =[电子邮件受保护]
验证返回:1
深度 = 0 C = CX、ST = Loc、L = Loc、O = Comp、OU = OX、CN = a.comp.int、emailAddress =[电子邮件受保护]
验证返回:1
---
证书链
 0秒:/C=CX/ST=Loc/L=Loc/O=Comp/OU=OX/CN=a.comp.int/[电子邮件受保护]
   i:/C=CX/ST=SX/L=Loc/O=Org/[电子邮件受保护]
---

当验证失败时,上述命令的输出包含:

已连接(00000003)
深度 = 1 C = CX、ST = SX、L = Loc、O = 组织、电子邮件地址 =[电子邮件受保护]
验证返回:1
深度 = 0 C = CX、ST = Loc、L = Loc、O = Comp、OU = OX、CN = a.comp.int、emailAddress =[电子邮件受保护]
验证错误:num=7:证书签名失败
验证返回:1
深度 = 0 C = CX、ST = Loc、L = Loc、O = Comp、OU = OX、CN = a.comp.int、emailAddress =[电子邮件受保护]
验证返回:1
---
证书链
 0秒:/C=CX/ST=Loc/L=Loc/O=Comp/OU=OX/CN=a.comp.int/[电子邮件受保护]
   i:/C=CX/ST=SX/L=Loc/O=Org/[电子邮件受保护]
---

有人可以帮我找出问题出在哪里吗?
是不是在主机上(无法验证以太证书的)认证链(根 CA - 中间 CA)不知何故“损坏”?我应该做什么来进一步调试这个?
即使主机上有 openssl无法验证来自以太主机的证书,Firefox 在主机上运行也成功验证了这些 - 当然使用其自己的证书存储,其中已导入上面提到的根 CA 和中间 CA。
再次从楼主的角度A一切运行正常,正如预期。
还有一件事:命令

openssl verify -CAfile /etc/ssl/certs/CA.pem -untrusted /etc/ssl/certs/Int_CA.pem /home/<用户>/.ssh/id_b.pub

在主机上产生结果:

/home/<用户>/.ssh/id_b.pub:好的

所以这一次一切似乎都井然有序。

相关内容