【发布时间】:2021-01-14 11:54:51
【问题描述】:
我正在尝试使用 milo (0.4.2) 连接到 Prosys opcua 模拟服务器
- 我使用 openssl 为用户生成了证书/密钥
- 我使用来自 milo sdk 的给定示例为应用程序生成了证书,并将它们导出为证书文件和未加密的 pkcs 8 pem 文件。
- 我将两个证书都复制到了 prosys 文件夹中
/home/user/.prosysopc/prosys-opc-ua-simulation-server/USERS_PKI/CA/certs
/home/user/.prosysopc/prosys-opc-ua-simulation-server/PKI/CA/certs
-
我检查了 prosys ui 中的两个证书都出现并且看起来受信任
-
最后,当我将身份验证模式作为证书和传输安全作为签名(使用在步骤 1 中生成的所有密钥和证书)时,我在 milo 内部遇到了一个相当有趣的异常,例如
Exception in thread "main" java.util.concurrent.ExecutionException: UaException: status=Bad_SecurityChecksFailed, message=unknown securityAlgorithmUri: null
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
at de.api.snippets.derReader.main(derReader.java:68)
Caused by: UaException: status=Bad_SecurityChecksFailed, message=unknown securityAlgorithmUri: null
at org.eclipse.milo.opcua.stack.core.security.SecurityAlgorithm.fromUri(SecurityAlgorithm.java:143)
at org.eclipse.milo.opcua.sdk.client.session.SessionFsmFactory.lambda$createSession$49(SessionFsmFactory.java:852)
at org.eclipse.milo.opcua.sdk.client.session.SessionFsmFactory$$Lambda$2643/0000000000000000.apply(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
而且我实际上看到这些字段来自 prosys empty
基本上我在这里卡住了,从图片中可以看出,我请求具有安全模式的端点并收到响应,我不知道是什么。 我尝试了 milo 提供的所有可用的 SecurityPolicy,但在所有情况下我都遇到了同样的情况。
所以第一个问题是必须在这个 securityAlgorithmUri 中指定什么,并且无论如何要指向 prosys 来填充它吗?
【问题讨论】: