Получи TLS сертификат на Госуслугах (пока не по ГОСТу)
В заметке пойдет речь о том, зачем и как получать TLS сертификат на Госуслугах для своего сайта.
Отзыв сертификатов
После внесения в санкционный список Банка России, ВТБ, Совкомбанка и Промсвязьбанка сертификаты их сайтов, выпущенных в зарубежных удостоверяющих центрах (УЦ), были отозваны.
С точки зрения собственной политики УЦ прав: причиной для отзыва сертификата может стать заявление государственной инстанции либо добавление владельца в «черный список» (подробнее на хабре).
В срочном порядке для сайтов были получены новые сертификаты от бельгийской компании GlobalSign. Естественно, гарантий, что эти сертификаты тоже не отзовут, нет. В этот момент все вспоминают про отечественную инфраструктуру, которой пока нет. Поэтому появляется быстрое промежуточное решение – самоподписанный сертификат российского УЦ с западной криптографией (не путать с НУЦ — Национальным Удостоверяющим Центром).
По состоянию на 11.03.2022 на новом УЦ выпущено порядка 300 сертификатов, в основном для доменов санкционных банков. Но использование этого УЦ видится скорее запасным вариантом, в продакш по-прежнему применяются сертификаты GlobalSign. Связано, это с тем, что корневой сертификат российского УЦ пока не интегрирован в популярные браузеры и ОС. Соответственно, для большинства пользователей он будет выглядеть «недоверенным» и вызовет не меньше вопросов, чем отозванный ранее сертификат.
Тем не менее наличие запасного варианта лишним не будет. Через некоторое время по крайней мере часть браузеров (ну или только Яндекс.Браузер) будут воспринимать сертификат этого УЦ как доверенный. Теперь рассмотрим саму процедуру получения сертификата.
Как получить TLS сертификат на Госуслугах
Сервис по получению TLS сертификата появился на Госуслугах: https://www.gosuslugi.ru/tls
По ссылке доступна сама услуга, список выпущенных сертификатов и корневой сертификат УЦ.
Услуга по выдаче сертификата — бесплатная, предоставляется только юридическим лицам. Потребуется УКЭП — усиленная квалифицированная электронная подпись (например та, которую используют для подачи отчетности в ФНС). Срок исполнения – до 5 рабочих дней.
Формирование запроса на сертификат
Нужно сформировать ключевую пару, например, с помощью openssl.
Алгоритм подписи RSA, длина ключа — 2048 бит.
Поле subject:
- CN (common name) = домен (укажите адрес своего домена, например, aveselov.ru)
- O (organization) = полное наименование организации (укажите наименование своей организации, желательно латиницей)
- L (location) = город, например Moscow
- С (country) = RU
Рекомендуемый формат запроса #pkcs10 или csr.
Расширения keyUsage = digitalSignature, keyEncipherment или иные значения, например nonRepudiation, keyEncipherment, опционально.
В качестве subjectAltName укажите все необходимые DNS-имена (например DNS1=yandex.ru, DNS2=ya.ru).
Для параметра extendedKeyUsage укажите serverAuth или иные значения, например сlientAuth, опционально.
Выглядит это примерно следующим образом:
openssl req -out your_ogranization_certificate.csr -new -newkey rsa:2048 -keyout your_ogranization_certificate.key -nodes -config test.cfg -subj "/C=RU/L=Moscow/O=Test Company/CN=aveselov.ru"
Команда неинтерактивная, архив с файлом test.cfg прилагается. Не забудьте поменять параметры поля subject, указанные в примере, на свои. Также обратите внимание, что для разделения параметров в openssl использует не запятая, а обратный слеш.
В результате получим файл your_ogranization_certificate.csr с запросом, который потребуется нам на следующем шаге.
Подпись запроса
Файл с запросом требуется подписать электронной подписью. Вопрос получения квалифицированной ЭП и установки криптопровайдера рассматривать не будем, ограничимся примером подписи файла с помощью КриптоПро CSP.
Подписать файл запроса с помощью КриптоПро СSP не сложно:
«Пуск» – «Инструменты КриптоПро» – «Создание подписи»
Далее необходимо выбрать подписываемый файл, полученный на прошлом этапе, и нажать кнопку «Подписать». В папке, в которой находится исходный файл запроса, появится файл открепленной ЭП с расширением .sig (если расширение иное, нажмите «Сохранить подпись как» и выберете формат .sig).
Указание контактов
Теперь, когда все готово, можно вернуться к сайту Госуслуг, где в форме следует указать контактные данные администратора для оперативной с ним связи (указывайте реальные данные, об этом ниже).
Загрузка файлов
И последний шаг – загрузите ранее сформированный запрос и подпись к нему.
Далее формируется заявление на получение TLS сертификата. Его необходимо скачать, подписать с помощью ЭП и на портал (аналогично предыдущим пунктам).
После нажатия «Далее» ждем до 5 дней и можем пользоваться новым сертификатом (сообщение о готовности придет в Госпочту и в Уведомлениях на Госуслугах).
Проверка (добавлено 15.03.2022)
Далее по указанным в форме контактам с вами свяжутся для подтверждения и уточнения деталей. Нужно будет подтвердить право на владение доменом. Для этого получаем у регистратора доменных имен справку о принадлежности домена, снова подписываем ЭП и отправляем для подтверждения. Логично было бы добавить этот шаг на портал Госуслуг, но пока он отдельный, возможно позже скорректируют.
И вот теперь ждем выпуска сертификата.
Резюме
Посмотрим в какие браузеры и как быстро будет добавлен российский корневой сертификат. От этого напрямую зависит масштаб его дальнейшего использования.
С одной стороны – сертификаты от зарубежных УЦ могут быть отозваны, тогда сайты останутся без защиты. С другой – использование российского УЦ потенциально позволит регуляторам в случае необходимости реализовать MITM (Man-in-the-Middle) с тотальной инспекцией трафика на эти сайты, что ожидаемо отпугивает пользователей.
Еще пост по этой теме:
https://lukatsky.ru/cryptography/mintsifry-vydaet-gostovye-tls-sertifikaty-riski-i-vozmozhnosti.html
По Вашей статье написал скриптик для автогенерации сертификатов для списка доменов. Скачать
https://disk.yandex.ru/d/HXgxu8rlQoZm8A
После проверки добавьте в статью.
Спасибо! Добавил.
Спасибо за скрипт, подскажите, пожалуйста, после исполнения скрипта генерируются 3 файла, для запроса сертификата достаточно файла .csr?
Да, запрос в формате .csr. Конфиги отправлять не нужно
А еще есть инструкция от Минцифры
И чатик в telegram: https://t.me/RussianTLS
Подскажите, пожалуйста, как «Нужно сформировать ключевую пару, например, с помощью openssl» из под Windows?
Сначала скачать OpenSSL под Windows. На официальном сайте установщика в готовом виде нет, нужно смотреть на сторонних ресурсах. После установки запустить командную строку, перейти в папку с установленной программной и действовать по инструкции.
Подскажите, пожалуйста, а возможна ли генерация сертификата для домена третьего уровня?
Да, такая возможность есть