Настройка инфраструктуры сертификатов OPC UA для соединителя для OPC UA
В этой статье вы узнаете, как настроить инфраструктуру сертификатов OPC UA для соединителя для OPC UA. Эта конфигурация позволяет определить, с какими серверами OPC UA вы доверяете безопасное создание сеанса.
На основе спецификации OPC UA соединитель для OPC UA выступает в качестве единого приложения OPC UA, когда он устанавливает безопасный обмен данными с серверами OPC UA. Соединитель для OPC UA использует один и тот же сертификат экземпляра приложения для всех безопасных каналов, которые он открывается на серверах OPC UA.
Дополнительные сведения см. в разделе инфраструктуры сертификатов OPC UA для соединителя для OPC UA.
Необходимые компоненты
Развернутый экземпляр операций Интернета вещей Azure. Сведения о развертывании операций Интернета вещей Azure для демонстрации и изучения см . в кратком руководстве по запуску операций Интернета вещей Azure в пространствах кода GitHub с помощью K3s.
Включение безопасных параметров в развертывании Операций Интернета вещей Azure
Настройка самозаверяющего сертификата экземпляра приложения
Развертывание соединителя по умолчанию для OPC UA устанавливает все ресурсы, необходимые cert-manager для создания самозаверяющего сертификата OPC UA. Этот сертификат хранится в секрете aio-opc-opcuabroker-default-application-cert
. Этот секрет сопоставляется со всеми соединителями для модулей pod OPC UA и выступает в качестве сертификата экземпляра клиентского приложения OPC UA. cert-manager
обрабатывает автоматическое продление сертификата экземпляра приложения.
Эта конфигурация обычно достаточно для обеспечения соответствия требованиям и безопасного взаимодействия между серверами OPC UA и соединителем для OPC UA в демонстрационной или исследовательской среде. Для рабочей среды используйте сертификаты экземпляра приложения корпоративного уровня в развертывании.
Настройка списка доверенных сертификатов
Чтобы подключиться к ресурсу, сначала необходимо установить взаимное доверие проверки подлинности приложения. Для соединителя для OPC UA выполните следующие действия.
Получите сертификат экземпляра сервера OPC UA в виде файла. Обычно эти файлы имеют расширение .der или CRT. Это только открытый ключ.
Совет
Как правило, сервер OPC UA имеет интерфейс, который позволяет экспортировать сертификат экземпляра приложения. Этот интерфейс не стандартизирован. Для серверов, таких как KEPServerEx, существует пользовательский интерфейс конфигурации на основе Windows для управления сертификатами. Другие серверы могут иметь веб-интерфейс или использовать папки операционной системы для хранения сертификатов. Ознакомьтесь с руководством пользователя сервера, чтобы узнать, как экспортировать сертификат экземпляра приложения. После получения сертификата убедитесь, что он закодирован как DER, так и PEM. Обычно хранится в файлах с расширением .der или CRT. Если сертификат не входит в один из этих форматов файлов, используйте средство, например
openssl
, чтобы преобразовать сертификат в требуемый формат.Добавьте сертификат экземпляра приложения сервера OPC UA в список доверенных сертификатов. Этот список реализуется как собственный секрет Kubernetes с именем aio-opc-ua-broker-trust-list , созданный при развертывании операций Интернета вещей Azure.
Для сертификата в кодировке DER в файле, например ./my-server.der, выполните следующую команду:
# Append my-server.der OPC UA server certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.der"
Для сертификата в кодировке PEM в файле, например ./my-server.crt, выполните следующую команду:
# Append my-server.crt OPC UA server certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server.crt"
Если сервер OPC UA использует сертификат, выданный центром сертификации (ЦС), вы можете доверять ЦС, добавив его сертификат открытого ключа в соединитель для списка доверенных сертификатов OPC UA. Соединитель для OPC UA теперь автоматически доверяет всем серверам, используюющим действительный сертификат, выданный ЦС. Поэтому не нужно явно добавлять сертификат сервера OPC UA в соединитель для списка доверенных сертификатов OPC UA.
Чтобы доверять ЦС, выполните следующие действия.
Получение кодирования открытого ключа сертификата ЦС в формате DER или PEM. Эти сертификаты обычно хранятся в файлах с расширением .der или CRT. Получите список CRL ЦС. Этот список обычно находится в файле с CRL. Дополнительные сведения см. в документации по серверу OPC UA.
Сохраните сертификат ЦС и список CRL в собственном секрете Kubernetes aio-opc-ua-broker-trust-list .
Для сертификата ЦС в кодировке DER в файле, например ./my-server-ca.der, выполните следующие команды:
# Append CA certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der" # Append the CRL to the trusted certificate list secret as a new entry data=$(kubectl create secret generic temp --from-file= my-server-ca.crl=./ my-server-ca.crl --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
Для сертификата ЦС в кодировке PEM в файле, например ./my-server-ca.crt, выполните следующие команды:
# Append CA certificate to the trusted certificate list secret as a new entry az iot ops connector opcua trust add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt" # Append the CRL to the trusted certificates list secret as a new entry data=$(kubectl create secret generic temp --from-file=my-server-ca.crl=./my-server-ca.crl --dry-run=client -o jsonpath='{.data}') kubectl patch secret aio-opc-ua-broker-trust-list -n azure-iot-operations -p "{`"data`": $data}"
Настройка списка сертификатов издателя
Если сервер OPC UA использует сертификат, выданный ЦС, но вы не хотите доверять всем сертификатам, выданным ЦС, выполните следующие действия.
Доверяйте сертификату экземпляра приложения сервера OPC UA, выполнив первые три шага, описанные в предыдущем разделе.
Помимо самого сертификата соединитель для OPC UA требует сертификата ЦС для правильной проверки цепочки издателей сертификата сервера OPC UA. Добавьте сертификат ЦС и список отзыва сертификатов (CRL) в отдельный список под названием aio-opc-ua-broker-issuer-list , реализованный как секрет Kubernetes.
Сохраните сертификат ЦС и список отзыва сертификатов в секрете
aio-opc-ua-broker-issuer-list
.# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.der" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
Для сертификата в кодировке PEM в файле, например ./my-server-ca.crt, выполните следующие команды:
# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crt" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./my-server-ca.crl"
Настройка сервера OPC UA
Чтобы завершить настройку взаимного доверия проверки подлинности приложения, необходимо настроить сервер OPC UA для доверия соединителю для сертификата экземпляра приложения OPC UA:
Чтобы извлечь соединитель для сертификата OPC UA в
opcuabroker.crt
файл, выполните следующую команду:kubectl -n azure-iot-operations get secret aio-opc-opcuabroker-default-application-cert -o jsonpath='{.data.tls\.crt}' | base64 -d > opcuabroker.crt
Многие серверы OPC UA поддерживают только сертификаты в формате DER. При необходимости используйте следующую команду, чтобы преобразовать сертификат opcuabroker.crt в opcuabroker.der:
openssl x509 -outform der -in opcuabroker.crt -out opcuabroker.der
Ознакомьтесь с документацией сервера OPC UA, чтобы узнать, как добавить
opcuabroker.crt
файл сертификата илиopcuabroker.der
файл сертификата в список доверенных сертификатов сервера.
Настройка сертификата экземпляра приложения корпоративного уровня
В рабочих средах соединитель для OPC UA можно настроить для использования сертификата экземпляра приложения корпоративного уровня. Как правило, корпоративный ЦС выдает этот сертификат и требуется сертификат ЦС в конфигурации. Часто в конфигурацию необходимо добавить полную цепочку проверки ЦС.
Следующий пример ссылается на следующие элементы:
Позиция | Description |
---|---|
opcuabroker-certificate.der | Файл, содержащий открытый ключ сертификата экземпляра приложения корпоративного уровня. |
opcuabroker-certificate.pem | Файл, содержащий закрытый ключ сертификата экземпляра приложения корпоративного класса. |
subjectName |
Строка имени субъекта, внедренная в сертификат экземпляра приложения. |
applicationUri |
URI экземпляра приложения, внедренный в экземпляр приложения. |
enterprise-grade-ca-1.der | Файл, содержащий открытый ключ сертификата ЦС корпоративного уровня. |
enterprise-grade-ca-1.crl | CRL-файл ЦС. |
Как и в предыдущих примерах, вы используете выделенный секрет Kubernetes для хранения сертификатов и crls. Чтобы настроить сертификат экземпляра приложения корпоративного уровня, выполните следующие действия.
Сохраните сертификаты и список отзыва сертификатов в секрете сертификата aio-opc-ua-broker-client-certificate с помощью следующей команды:
# Create aio-opc-ua-broker-client-certificate secret # Upload OPC UA public key certificate as an entry to the secret # Upload OPC UA private key certificate as an entry to the secret az iot ops connector opcua client add \ --instance <your instance name> \ -g <your resource group> \ --public-key-file "./opcuabroker-certificate.der" \ --private-key-file "./opcuabroker-certificate.pem" \ --subject-name <subject name from the public key cert> \ --application-uri <application uri from the public key cert>
Если вы используете ЦС для выдачи сертификатов для брокера OPC UA, настройте секрет aio-opc-ua-broker-issuer-list . Используйте клиент Kubernetes, например для
kubectl
настройки секретов enterprise-grade-ca-1.der и enterprise-grade-ca-1.crl:# Append CA certificate to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.der" # Append the CRL to the issuer list secret as a new entry az iot ops connector opcua issuer add --instance <your instance name> --resource-group <your resource group> --certificate-file "./enterprise-grade-ca-1.crl"
Теперь, когда соединитель для OPC UA использует корпоративный сертификат, не забудьте добавить открытый ключ нового сертификата в списки доверенных сертификатов всех серверов OPC UA, к которым он должен подключиться.