BadCertificateChain与node-opcua客户端不完整

问题描述 投票:0回答:1

当使用 node-opcua 客户端连接到西门子 S7-1500 OPCUA 服务器时(并且我认为正确的证书放置在正确的 PKI 文件夹中),我得到以下输出:

    serverCertificate =  12ffc2f86bd61eb68ce3b717426e08babbd7454d
    serverCertificate =  MIIEHDCCAwSgAwIBAgIIWHEfo4fZJkgwDQYJKoZIhvcNAQELBQAwSDEnMCUGA1UEAxMeU2llbWVucyBUSUEgUHJvamVjdCAtIFByb2plY3QyMQswCQYDVQQGEwJERTEQMA4GA1UEChMHU2llbWVuczAeFw0yNTAxMDkxNjAzMzZaFw0zNzAxMDkwNTAwMDBaMDgxFzAVBgNVBAMTDlBMQy0xL09QQ1VBLTEzMQswCQYDVQQGEwJERTEQMA4GA1UEChMHU2llbWVuczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKShdHG9BQUIp7ABx+CpBNtr7juc+wRZXBqCxrAFmLAaNB/iUyHLMQyfXe3PaI4xR2oVIZYhOdgd48yhISO/+ZNfWjsUbj7Us5aP/jh4UwzID6pFRGnR09BYcy/Kkq3hNw5akjvDpCus3i8vUfeZH0oSnmeMUhzpbsc9qT6SfvtYR1KMs6bkOPJTJoIkzxT40ORGmuOT2lRudJHqDro9cxnthSQi30xSSKo3C9bnBMfVf3wQfL8HcBUUug3CgorxJ9zTwv6iA+pnuXVUES4Har9elP4Mu0NknWuimvvOnL9Wmjy0UgiOLW4xZovEs+aeC6LqpcGqpRC7K3ran2bUCvMCAwEAAaOCARgwggEUMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOkDt2wcO7ph+gYRJRmQlzU6CKaAMHcGA1UdIwRwMG6AFCvw98tAwJOEGuhzesIKz5G1QUYKoUykSjBIMScwJQYDVQQDEx5TaWVtZW5zIFRJQSBQcm9qZWN0IC0gUHJvamVjdDIxCzAJBgNVBAYTAkRFMRAwDgYDVQQKEwdTaWVtZW5zggg8DcpICPTPKTAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMD0GA1UdEQQ2MDSGLHVybjpTSU1BVElDLlM3LTEyMDAuT1BDLVVBLkFwcGxpY2F0aW9uOlBMQ18xhwQKwPQLMA0GCSqGSIb3DQEBCwUAA4IBAQAaCZBox7LnySbKulEjtWJi5rGeyYOKw7bmd9CM6djpLrJ5BXdNGZzkLX5P/ZBzrYPZbo5PguvzQHeb3YbHSkzzRirspuGaFZGktAOwBk5uI6BqZPcwSsl2zqoL2lac4kMeOdYVNQVM0wdzGBySPMkOOvuEIwUux/kFAkoO4lfgF2dWpx8X9JTQqq/G1M+yh6Z2ddUUXBdahSx9mz37j0rpf2uA582K7p4Uwqtf+JVeGNn8dXM6AKHJawq7bSsQ/lmWv7b1GtXgRodn+NWmcvkAUn7btMfkIHjU1vebRiqaQbTFMhWXHQ5FQNuY1ZCpEEmSRhjPajKx8Rnc4ZJsyoQl       

[NODE-OPCUA-W25] client's server certificate verification has failed  server
Certificate verification failed with err BadCertificateChainIncomplete (0x810d0000)

第一个服务器证书是什么?哈希键?

是否可以将客户端获取到的上述两个服务器证书合并成一个通过验证的证书?

opc-ua node-opcua
1个回答
0
投票

第一个小问题:
我假设您看到的是证书指纹,它实际上是一个哈希密钥。

对于主要问题:

当您收到由 CA 签名的证书时,您应该了解或信任证书链中的所有证书,而不仅仅是叶证书。
请参阅https://github.com/node-opcua/node-opcua-pki
对于已知但不可信的证书,您拥有 issuers/certs 文件夹。
注意: 您永远不需要颁发者/证书中的任何叶证书,因为这些证书始终由服务器提供。

  • 一种解决方案是将叶证书放入trusted/certs中,然后将 CA 证书放入颁发者/证书。只有叶子是可信的
  • 另一个解决方案是将CA证书放入trusted/certs中(并且不需要将叶证书放在任何地方)。所有由CA签署的证书都是可信的

具有多个 CA 的证书链应该以相同的方式工作,每个 CA 都应该位于 trusted/certs 或位于 issuers/certs

© www.soinside.com 2019 - 2024. All rights reserved.