Перейти к содержанию

Выпуск лабораторного ГОСТ-сертификата НАЙС.ОС

При испытаниях на НАЙС.ОС успешно сформированы ключ ГОСТ Р 34.10-2012/256 и самоподписанный X.509-сертификат. Для опыта с CMS-шифрованием выбран набор параметров XA, позволяющий исследовать согласование ключа. Это учебный, а не квалифицированный сертификат.

Создайте отдельный ключ для шифрования

umask 077
LAB=/root/gost-cms-test/lab
mkdir -p "$LAB"
chmod 700 "$LAB"
cd "$LAB"

openssl genpkey \
  -algorithm gost2012_256 \
  -pkeyopt paramset:XA \
  -out niceos-lab.key.pem
chmod 600 niceos-lab.key.pem

В описываемом стенде команда завершилась без ошибок на OpenSSL 3.5.6 + GOST Engine. Не считайте параметры XA универсальным стандартом для любого получателя: реальные продукты могут поддерживать разные наборы кривых и схемы транспорта ключей. Это проверяется при межвендорном обмене.

Создайте самоподписанный сертификат

openssl req \
  -new -x509 \
  -key niceos-lab.key.pem \
  -days 30 \
  -subj '/C=RU/O=NiceOS Lab/CN=NiceOS GOST CMS Test' \
  -addext 'keyUsage=critical,keyAgreement,keyEncipherment' \
  -addext 'extendedKeyUsage=emailProtection' \
  -out niceos-lab.crt.pem

В испытании X.509 содержал ГОСТ-2012/256 в полях Signature Algorithm и Public Key Algorithm, а также Key Agreement, Key Encipherment и E-mail Protection.

Проверьте сертификат самостоятельно:

openssl x509 -in niceos-lab.crt.pem -noout \
  -subject -dates -ext keyUsage -ext extendedKeyUsage
openssl x509 -in niceos-lab.crt.pem -noout -text \
  | grep -E 'Signature Algorithm:|Public Key Algorithm:'

Не путайте назначение сертификата для согласования ключа при шифровании с сертификатом для электронной подписи. Самоподпись служит для лаборатории и не создает промышленного доверия.

Экспортируйте только открытый сертификат

openssl x509 \
  -in niceos-lab.crt.pem \
  -outform DER \
  -out niceos-lab-public.cer

openssl x509 -inform DER -in niceos-lab-public.cer \
  -noout -subject -fingerprint -sha256

Для испытания КриптоПро → НАЙС.ОС на macOS передавайте niceos-lab-public.cer, но не niceos-lab.key.pem. Если cryptcp не принимает профиль получателя, зафиксируйте ошибку и сравните OID. Не пытайтесь исправить её использованием настоящего квалифицированного ключа.

Отдельная подпись для проверки CryptCP

В другом уже выполненном опыте GPGSM использовал одноразовый сертификат со свойствами CA:TRUE и digitalSignature для проверки подписи на Mac. Это было сделано ради технической локальной самопроверки. Не повторяйте CA:TRUE как рекомендуемое оформление пользовательского сертификата. В рабочих системах сертификаты CA и конечного пользователя разделяются; корпоративное доверие строится на проверенной цепочке.

Для создания подписи см. проверку НАЙС.ОС → КриптоПро; для защиты контейнера закрытого ключа см. PKCS#12.