1

我有一个简单的 node-opcua 客户端,它想通过 Basic128Rsa15 策略连接到服务器。

我创建了一个自签名证书,服务器确实收到了这个证书,我可以将它在服务器上移动到受信任的 pki 目录。

在我的客户端 - node-opcua - 我还看到一个新目录“pki/rejected”,其中包含来自服务器的证书。

我现在的问题是:我现在必须做什么才能让客户端信任来自服务器的这个自签名证书?

我已经尝试创建一个“受信任”目录并将其移动到那里,但这无济于事,我还尝试添加一个选项(我通过谷歌找到): serverCertificate=crypto_utils.readCertificate("pki/trusted /04c9f401be19e5a2349460306579c692e777cea5.pem"); 但这也无济于事。当我启动客户端时,它会在“rejected”文件夹中再次创建证书。

我用于连接的 node-opcua 选项:

选项:securityMode:3 # None = 1,Sign = 2,SignAndEncrypt = 3 securityPolicy:“http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15” certificateFile:certificates/cert.pem privateKeyFile:certificates/key.pem

4

1 回答 1

1

[编辑]

2.30 版以后:node-opcua 客户端现在执行来自服务器的完整证书验证:

  • 如果服务器证书已由 CA 生成,则 CA 证书必须与相应的 CRL 一起出现在客户端的 PKI(在颁发者文件夹中)中。
  • 默认情况下,客户端证书管理器接受有效的未知服务器证书以向后兼容以前的版本。这可以通过将 设置automaticallyAcceptUnknownCertificates为 false 来恢复。
  • 执行其他检查以验证服务器的证书是否严格符合 OPCUA 的要求,例如subjectAltName.uniqueResourceIdentify必须匹配服务器的 applicationUri keyUsage、、密钥长度等...
  • 如果服务器证书已知并且在拒绝文件夹中,客户端将拒绝与服务器的连接。

2.28 及以下版本:node-opcua 客户端尚未执行服务器证书信任/拒绝检查,也没有完整的证书验证,只是基本验证(日期,签名......)

于 2020-12-07T20:59:20.717 回答