Создать сертификат для клиента OPC - PullRequest
0 голосов
/ 14 мая 2018

Я кодирую OPC UA Client для подключения к Sofnet (OPC Server от Siemens).Метод Server для подключения - это SignAndEncrypt, поэтому мне нужен сертификат x509 в формате "der".

Я создал свой собственный самозаверяющий сертификат с openssl, но есть поле с именем "Subject Alt Names", в котором мне нужноукажите приложение URI.Я видел, что это поле может быть заполнено файлом конфигурации с openssl, но когда я создаю сертификат, я не вижу «Subt Alt Names».

Может ли кто-нибудь помочь мне создать сертификат или дать мнеключ к аутентификации моего OPC-клиента?

Заранее спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Вы можете создать файл bash (например, mkcert.sh), который будет выполнять весь процесс:

  • Создание ключа RSA 2048 бит.
  • Создание запроса сертификата.
  • Подпишите его своим собственным ключом (самозаверяющим сертификатом) и добавьте дополнительную информацию из файла extensions.cnf к сертификату
  • Получите версию сертификата PEM и DER (опция)

Файл bash должен содержать

openssl genrsa -out default_pk.pem 2048
openssl req -new -key default_pk.pem -out cert.csr -subj "/C=US/ST=NY/L=NY/O=Organization/OU=OrganizationUnit/CN={YOUR_IP}"
openssl x509 -req -days 3650 -extfile extensions.cnf -in cert.csr -signkey default_pk.pem -out public.pem
openssl x509 -in public.pem -inform PEM -out public.der -outform DER

Затем вам понадобится файл extensions.cnf, содержащий информацию SubjectAltName и некоторую другую информацию.

basicConstraints=CA:TRUE
authorityKeyIdentifier=keyid,issuer
keyUsage=dataEncipherment,keyEncipherment,nonRepudiation,digitalSignature,keyCertSign,cRLSign
extendedKeyUsage=serverAuth,clientAuth
subjectAltName=URI:URN:{YOUR_IP}

Заменить вв обоих случаях {YOUR_IP} с вашим реальным IP-адресом клиента OPC UA.

...