0

我有一个基于 open62541 的 OPC UA 服务器,可以与 UnifiedAutomotion 的客户端UAExpert 正确连接。我尝试添加服务器证书,但UAExpert 找不到它,即使我将它添加到UAExpert>Certificate manager 的信任列表中也是如此。是否正确加载?

UA_Server *server = UA_Server_new();
UA_ServerConfig *config = UA_Server_getConfig(server);
config->serverCertificate = loadCertificate(); // Returns UA_ByteString of the file certificate.der
if(config->serverCertificate.length > 0)
   UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_SERVER, "Certificate loaded");

UA_ServerConfig_setDefault(config);

我不知道该方法UA_ServerConfig_setDefault是否足以加载证书,因为我看到的示例UA_ServerConfig_setDefaultWithSecurityPolicies用于设置服务器配置。我试图测试server_encrypted.c的示例,但是当我编译它时会抛出库和 glibc 版本的异常。

提前致谢。

4

1 回答 1

0

欢迎来到stackoverflow。

我没有使用 open6254 的经验,但是客户端使用先前从服务器读取的端点列表中的端点进行连接。选择的端点应该包含一个证书,并且在调用createession时服务器会重新发送证书,如果两个证书不相等,则客户端必须按照 OPC UA 规范的要求取消该过程。

服务器可能没有发送两个证书之一,或者它们不相等。

我想你最好在这里问https://groups.google.com/forum/#!forum/open62541

于 2020-01-11T16:57:25.453 回答