Учитывая последние невесёлые новости (да да, они уже мажутся что простых людей это не заденет, но амерам верить - себя не уважать) решил сделать себе на сайт и в принципе на всю свою инфраструктуру сертификат от Минцифры. А именно даже не DV, а OV сертификат. Благо теперь они выдаются и простым гражданам без статуса ИП или юрлица. Причём решил даже сделать максимально нагло — сразу wildcard чтобы и все субдомены покрыть. Установил, работает.

Pasted image 20260612210012.png

Оставлю маленькую памятку как делать, может кому пригодится, ведь путь не самый тривиальный и с парой подводных камней, которые, впрочем, легко обходятся.

Генерация CSR файла

  1. https://www.gosuslugi.ru/landing/tls идём сюда, жмём «Получить» потом «Далее»
    Pasted image 20260612205753.png
  2. Далее в «Сертификат с применением каких алгоритмов шифрования хотите получить?» я выбрал «Международного RSA» хотя можно было и ГОСТ, но мне кажется, будет сложнее настроить, а зачем мне усложнять?
  3. Ознакамливаемся с информацией
    Pasted image 20260612210343.png
  4. Дальше несколько экранов с личными данными которые надо просто проверить и доходим до самого интересного:
    Pasted image 20260612210458.png
  5. Чтобы получить CSR нужно выполнить пункты из инструкции https://gu-st.ru/content/PDF/Instrukciya_RSA_OV_FL.pdf как я уже говорил, я указал
    1
    
    subjectAltName = DNS:neonxp.ru,DNS:*.neonxp.ru
    
    всё остальное — по инструкции.
  6. Когда получился cnf файл (у меня он называется neonxp_ru.cnf) — делаем новый ключ и csr (файл запроса сертификата): openssl req -out neonxp_ru.csr -new -newkey rsa:2048 -nodes -keyout neonxp_ru.key -config neonxp_ru.cnf

Подпись CSR файла

Получив CSR файл появляется вопрос — а как его подписать с помощью УКЭП чтобы получить sig файл для второго поля?

Здесь нам пригодится приложение «Госключ». УКЭП там у меня уже давно есть, но если его нет, то с помощью загранника нового образца с ЭП УКЭП делается буквально за пару минут (https://www.gosuslugi.ru/landing/goskey там всё есть).

А дальше — подписывать можно через страницу https://www.gosuslugi.ru/600373/1/form и указываем категория: «Прочее».

Далее предложит приложить файл для подписи, но вот засада: csr файл не является разрешённым форматом! Так как мы знаем что подписывается именно содержимое файла, то файл можно переименовать в txt (neonxp_ru.csr → neonxp_ru.csr.txt) и успешно загрузить.
Pasted image 20260612212012.png

После этого указываем произвольное название, выбираем «УКЭП», «Да» на вопрос есть ли УКЭП в Госключе и жмём «Отправить в Госключ»

Далее проверяем телефон и там придёт Push от приложения Госключ и в нём подписываем документ:
Pasted image 20260612212606.png

После этого в профиль Госуслуг придёт желаемый sig файл.

Его нужно переименовать в файл вида neonxp_ru.csr.sig ! То есть такое же имя как у csr файла + .sig в конце. Об этом написано в инструкции, но я на всякий случай отмечаю это.

После того как у нас на руках есть файлы типа neonxp_ru.csr и neonxp_ru.csr.sig - прикладываем их к форме и идём по форме дальше.

А далее надо будет указать наши домены:
Pasted image 20260612213149.png

Подтверждение владения доменом

Дальше нужно будет внести TXT запись в настройки домена:
Pasted image 20260612213247.png

1
@      IN      TXT     "bf1f82d8-528d-479f-b3b8-4549e58bf2b3"

Это уже зависит от того, где у вас DNS. У меня свой DNS сервер, поэтому у меня просто запись в текстовый файл.

Дальше скриншоты я уже не делаю, сорян :)

Единственное что оно ещё попросит приложить PDF файл с подтверждением владения домена — его я просто заказал у своего регистратора доменов (у меня reg.ru) аж за 230₽! Ещё его нужно будет подписать чтобы получить sig файл. Подписывается ровно так же как и до этого подписывал CSR файл. Только уже не нужно переименовывать в txt, т.к. pdf — валидный формат для подписи :)

Применение сертификатов

После того как все файлы приложены и отправлены — остаётся только ждать. Заявлено, что до трёх рабочих дней. Мне сделали за пару часов в праздничный выходной день :) Очень оперативно, молодцы!

Сертификаты придут в личный кабинет Госулуг:
Pasted image 20260612214238.png

Скачиваем их. Нам пригодится только certificate.crt.

Сразу его нужно преобразовать в формат PEM:

1
openssl x509 -in certificate.crt -inform DER -out neonxp.crt -outform PEM

В принципе, можно после этого сразу взять и загрузить на сервер вместе с приватным ключем и прописать в веб сервере (у меня angie):
Pasted image 20260612214608.png

И всё! Достаточно просто :)

На самом деле, можно сделать и ещё более красиво дополнив свой сертификат полной цепочкой сертификатов:

1
cat neonxp.crt russian_trusted_root_ca_pem.crt russian_trusted_sub_ca_pem.crt > fullchain.crt

И уже fullchain.crt используем в конфиге. Но по факту, всё и так работает, без этого.