Клиент OPC UA - BadCertificateHostNameInvalid - opcfoundation.org

У нас есть более старый фрагмент кода VB .NET (Visual Studio 2013 Community Edition), который в настоящее время взаимодействует с ПЛК через UDP для очень элементарной передачи данных.

Сейчас нам нужна более тесная связь между ПЛК и ПК (ПК должен иметь возможность устанавливать множество параметров, а программа Labview может захотеть получить доступ к ПЛК напрямую), поэтому наш поставщик ПЛК (B&R) сказал, что OPC UA был путь идти.

Это похоже на вопрос, поставленный здесь:

клиентский SDK OPC-UA для разработки приложений C # .NET

На вводном семинаре по OPC UA мы получили скомпилированные версии клиента OPC UA, и если я запускаю симулятор ПЛК, клиент может подключиться к симулятору ПЛК. Конечно, он запрашивает имя и пароль, но появляется всплывающее окно, в котором говорится, что я пытаюсь подключиться, я получаю всплывающее окно для образца клиента UA, в котором говорится: «Сертификат не может быть проверен: BadCertificateUntrusted»

Хорошо, у меня нет сертификата. Вы щелкаете, и клиент продолжает движение вперед и показывает дерево всех элементов, которые были представлены OPC UA с помощью кода ПЛК. Все хорошо.

Теперь, если я загружу полный код с сайта opcfoundation.org, я могу скомпилировать код, но при прохождении той же тестовой последовательности, после подтверждения того, что у меня нет действующего сертификата, всплывает еще одно окно, в котором говорится:

ИСКЛЮЧЕНИЕ (ServiceResultException) BadCertificateHostNameInvalid РЕЗУЛЬТАТ СЛУЖБЫ (BadCertificateHostNameInvalid)

Это оба OPC UA 1.02, BTW.

Нужно ли что-то настраивать в другом месте? Я заметил, что есть несколько файлов XML (Opc.Ua.SampleClient.Config.xml и Opc.Ua.SampleClient.Endpoints.xml), и мне интересно, нужно ли их модифицировать, чтобы избавиться от этой остановки.

Я действительно помню, как читал, что что-то не будет совместимо с OPC UA, если вы автоматически разрешите этому быть в порядке (конечно), поэтому вы не можете просто сделать это автоматически, но это нормально для меня.

Недостатки использования кода OPC UA заключаются в том, что он немного глубокий (как отметил пользователь Брино в исходном сообщении StackOverflow) и требует, чтобы ваш собственный код был выпущен под GPL, поэтому Unified-Automation выглядит довольно заманчиво, поскольку мы можем не захотеть выпускать наш исходный код.

Есть мысли по поводу этой конкретной проблемы?


person asylumax    schedule 16.10.2017    source источник


Ответы (1)


Предупреждения и исключения, которые вы видите, скорее всего, не связаны с вашим сертификатом, но с сертификатом, который возвращает сервер.

BadCertificateHostNameInvalid StatusCode означает, что либо имя хоста сервера вообще не присутствует в сертификате как SubjectAltName, либо оно не соответствует имени хоста, которое вы фактически использовали для подключения к серверу.

Если возможно, выберите SecurityPolicy «None» и посмотрите, все ли работает так, как вы ожидаете. После этого вы можете сосредоточиться на том, чтобы разобраться с ситуацией с сертификатом. Возможно, вам потребуется установить соответствующее имя хоста на сервере, а затем повторно сгенерировать сертификат, использующий новое имя хоста. Вам также может потребоваться убедиться, что ваш клиентский компьютер может разрешить любое имя хоста, которое сервер настроен для использования, чтобы вы могли подключиться с его помощью.

Недостатки использования кода OPC UA заключаются в том, что он немного глубокий (как отметил пользователь Брино в исходном сообщении StackOverflow) и требует, чтобы ваш собственный код был выпущен под GPL, поэтому Unified-Automation выглядит довольно заманчиво, поскольку мы можем не захотеть выпускать наш исходный код.

Это верно только в том случае, если вы не являетесь членом фонда OPC. Если вы являетесь участником, вы можете использовать код без распространения исходного кода. См. Заголовочные файлы для получения дополнительной информации и сверьтесь с фактическим текстом лицензии «RCL» от фонда.

person Kevin Herron    schedule 16.10.2017