LINUX.ORG.RU
Форум — Admin  

Как я получал российский TLS-сертификат

 , ,


4

4

Услышал, что LE не продлевает сертификаты кому-то из России.

Услышал, что какие-то удостоверяющие центры отозвали сертификаты у кого-то из России.

А мне как раз нужен сертификат для сайта организации (раньше не было никакого). Решил не наступать на зарубежные грабли и получить суверенный бесплатный сертификат от Минцифры.

  1. Домен зарегистрирован на физлицо, это для Минцифры не подходит, нужно перерегистрировать на организацию. В Руцентре это делается через подачу заявления лично в офисе (остальные способы ещё хуже). Подал заявление, рассмотрение до 3 рабочих дней.

  2. Проходит 3 рабочих дня, в личном кабинете домена нет, звонок в поддержку (только по будним дням в рабочее время), ожидание на линии 15 минут, специалист отвечает «рассмотрение до месяца», я проявляю настойчивость и говорю, что в офисе обещали 3 дня, должна быть какая-то причина, и лишь в результате тщательного допроса специалист признался, что в личном кабинете нужно зайти в «Операции → Смена администратора» и там нажать «Принять домен». На главной странице личного кабинета не было ни намёка на то, что появился новый домен для принятия, и я так и не узнал, когда он там появился, через 3 дня или через полчаса.

  3. Для подачи заявления на сертификат нужна справка о принадлежности домена, подписанная УКЭП. Руцентр выдаёт такие справки бесплатно, если у вас подключена платная услуга «Безопасность домена» (я её подключать не собирался, они сами подключили). Заказываю справку, пропускаю при заказе варианты выбора доставки справки, и оказывается, что я заказал «Доставку почтой». Заказываю вторично, выбираю на этот раз электронный вариант, получаю отказ, т. к. уже заказана доставка почтой. Звоню в поддержку, ожидание на линии 10 минут, специалист отвечает, что отменить заказ можно только по заявке в поддержку через сайт. Пишу заявку на сайте, жду день, жду второй, звоню снова, через какое-то время заказ отменяют.

  4. Заново заказываю справку о принадлежности домена, но теперь это платная услуга, потому что «Безопасность домена» как раз за эти 2 дня истекла и продлевать её я не собираюсь. Плачу за справку (сумма меньше), получаю результат через ещё 2 дня. Электронную справку без живой подписи, которая делается автоматически, делают 2 дня.

  5. Справка получена, перехожу к заполнению заявления на Госуслугах на получение OV-сертификата. Первый вопрос: RSA или ГОСТ? Отвечаю, конечно ГОСТ, мы тут в суверенность играем или что, и я ещё давно слышал, что гостовские алгоритмы шифрования включили в OpenSSL. Заполняю конфигурационый файл по инструкции. В процессе пришлось выяснять, какого класса у меня СКЗИ Криптопро (оказалось, что КС1), а также расчехлить виртуалку с Астра-линуксом, чтобы создать ключ по ГОСТу (здесь меня должны были начать терзать смутные сомнения, но не начали).

  6. Для отправки заявления нужно доказать владение доменом путём добавления TXT-записи с подтверждающим кодом. Это означает ожидание от 10 до 30 минут, пока запись дойдёт до московских DNS-серверов, что на общем фоне незначительная потеря. Но для чего тогда нужна справка?

  7. Заявление отправлено в Минцифры, код подтверждён, справка с подписью тоже приложена. Через 10 секунд приходит отказ с формулировкой:

    NCA-315. Подпись документа, подтверждающего владение доменом, не прошла проверку

    Интернет таких слов не знает. Обращаюсь в поддержку Минцифры через Госуслуги же. Из поддержки отвечают на следующий день: оказывается, подписывать справку о принадлежности домена должен не регистратор домена, а организация, на которую оформлен домен. Из-за этого, во-первых, теряет всякий смысл само требование справки (и открывается возможность к более простой и нечестной процедуре получения справки без выполнения пп. 1-2), и во-вторых, теряют смысл действия в пп. 3-4, потому что справку без электронной подписи Руцентр просто даёт скачать с сайта бесплатно.

  8. Подписываю уже имеющуюся справку Руцентра подписью организации, подаю заявление на Госуслуги снова, через 10 секунд отказ не приходит, радуюсь, затем радость постепенно сменяется томительным ожиданием, потому что срок рассмотрения до 3 рабочих дней (в моём случае было 2).

  9. Получаю желанный сертификат, спешу поставить его на сервер и обнаруживаю, что:

    • Из коробки сертификат в nginx не работает, потому что суверенные гостовские алгоритмы, см. п. 5;

    • Рунет пестрит рекламой кастомной сборки nginx от Криптопро, в которую эти алгоритмы встроены, но последнее, что я хочу делать — это ставить на сервер чьи-либо кастомные сборки с регистрацией и кодами активации;

    • Всё же при наличии пакета libengine-gost-openssl, включения gost.so в конфиге OpenSSL и добавления в конфиг сайта

      ssl_protocols TLSv1.2; # Но не 1.3
      ssl_ciphers GOST2012-GOST8912-GOST8912:kGOST:aGOST;
      

      штатный nginx начинает работать.

  10. Но начинает работать в п. 9 только сервер. Клиенты не работают. Точнее, работает один: openssl s_client из командной строки (при условии установки и включения gost.so из п. 9). Никакие десктопные браузеры сайт не открывают. Ни Хром, ни Фаерфокс, ни chromium-gost, ни даже Яндекс-браузер. Не открывают вообще, опции «открой, я доверяю», не предлагается. Для того, чтобы зайти на сайт, нужно расширение Криптопро. Тот факт, что системный OpenSSL работает без Криптопро, браузерам не помогает, потому что все они тащат свои реализации TLS, системной не пользуются. Есть возможность локального проксирования трафика через OpenSSL и хождения на сайт через http://localhost:1234, но это слишком неестественно даже для пользователей Линукса. В прошлом были десктопные браузеры, поддерживающие ГОСТ (Атом, Спутник), но их уже нет. Также ходят слухи о секретной государственной разработке под названием «Браузер Восток», но её ещё нет. Короче говоря, гостовский сертификат был ошибкой.

  11. Возвращаюсь к. 5, заполняю заявку по другой форме на RSA-сертификат, повторяю п. 6, заявление отправлено, сертификат получен вечером того же дня, это успех.

  12. На этом фоне требование поставить суверенные корневые сертификаты кажется сущим пустяком. Единственное, нужно поставить их дважды: в браузер (чтобы открывать сайт без предупреждения от браузера) и в систему (чтобы работало всё остальное). Но в браузер их и так уже все поставили из-за Сбербанка и РЖД, а в систему, ну что ж, сгорел сарай — гори и хата.

Выводы:

  • С Руцентром лучше дела не иметь и регистрировать домены где угодно, только не в нём;

  • Подписывайте сами выданные вам справки о владении доменами (не проверял, работает ли также выдача этих справок самому себе);

  • Гостовские сертификаты вам нужны, только если вы государственная организация с повышенными требованиями к информационной безопасности, в остальных случаях берите RSA-сертификат;

  • Если не делать лишних действий и если очень повезёт, можно справиться за 1 рабочий день!

Перемещено hobbit из talks

★

Последнее исправление: ringill (всего исправлений: 12)
Ответ на: комментарий от Dimez

в ГОСТовом есть упоминание СКЗИ

СКЗИ - это всего лишь система криптографической защиты информации. Почему СКЗИ должно быть именно Крипто Про? Можно ли это обойти для ГОСТовского сертификата?

Xintrea ★★★★★
()
Ответ на: комментарий от Xintrea

Это не ко мне вопросы, я не получал ни RSA, ни ГОСТ сертификаты от Минцифры.

Dimez ★★★★★
()
Ответ на: комментарий от Xintrea

Криптопро (или что-то аналогичное) нужно организации, чтобы подписывать документы электронной подписью, в частности упомянутую в после злополучную справку о владении доменом, а также публичный ключ. Даже если бы никакого сайта не было, всё равно электронные подписи были бы нужны например для налоговой. Электронная подпись делается с помощью юсб-токена, и без Криптопро (или чего-то аналогичного) использовать токен невозможно. Стоит это удовольствие не очень дорого.

Почему в заявке на гостовский сертификат должно быть упоминание СКЗИ и её класса — мне лично неочевидно, т. к. токен в этой истории не участвует и, как показывает практика и пост, сервер с гостовским сертификатом можно поднять без Криптопро и её аналогов, с опенсорсной реализацией алгоритмов, и клиент (пусть через пень-колоду) — тоже. Это или выдумка бюрократического ума, или реализация какой-то хитрой схемы обеспечения безопасности, разобраться в вопросе могут только специалисты.

ringill ★
() автор топика
Ответ на: комментарий от vbr

А, ну отлично тогда, поскольку корневые сертификаты Минцифры в список доверенных и не входили, то дополнительного ущерба от этой меры не будет.

ringill ★
() автор топика
Ответ на: комментарий от ringill

В качестве компромисса перенёс тему в подходящий по тематике форум и прикрепил наверху (не хотелось бы, чтобы материал пропал).

т. к. от первого лица и с большой долей выражения частного мнения

В статьях тоже может быть частное мнение, если не выдавать его за прописную истину, можно в нужных местах писать «по мнению автора». Но тебе как автору, разумеется, виднее. В любом случае спасибо.

hobbit ★★★★★
()
Ответ на: комментарий от ringill

Ну это выделяет суть обсуждения. И да, я это сделал, поскольку готовил материал к перемещению в статьи, потом уже обнаружил, что ты этого не захотел. Могу курсив убрать, если автор против. :)

// Предложение про статью, если что, тоже остаётся в силе. На выбор.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Отредактировал, курсив у меня для другого. Всё хорошо теперь, пусть остаётся так. Спасибо.

ringill ★
() автор топика
Ответ на: комментарий от futurama

DV сертификат (RSA, на 90 дней как LE) выдается физ.лицу и прочим за 1 день, не выходя из дома.

Если точнее, (менее чем) за минуту.

Проблема что этo делается вручную и для классического (ленивого) админа без certbot обречено на муки.

Можно разделить выпуск и установку. При выпуске основная «мука» (если вы умеете пользоваться напоминаниями) - это валидация домена (DV). Для этого мы создали сервис автовалидации. Выпускать можно в прямом смысле дома (ACME-клиентом, установленным на домашний компьютер).

А устанавливать вручную, как любой другой сертификат. При использовании своего сервера нужно не забыть перезагрузить конфигурацию Web-сервера, например «service nginx reload», после установки сертификата.

estic
()
Последнее исправление: estic (всего исправлений: 2)

Услышал, что LE не продлевает сертификаты кому-то из России.

Вы, правда, работаете в такой организации, которой «LE не продлевает сертификаты»? :)

estic
()
Ответ на: комментарий от estic

Сегодня продлевает, завтра не продлевает. Я так стар, что помню времена, когда непродление сертификата сайта российской организации типа РЖД считалось чем-то немыслимым.

Или certbot наткнётся на какую-нибудь блокировку. Опять же, я помню времена, когда веерные блокировки Cloudflare считались немыслимыми.

ringill ★
() автор топика
Последнее исправление: ringill (всего исправлений: 1)
Ответ на: комментарий от futurama

Возможно DV тоже подошёл бы, но в момент принятия решения не оказался в лидерах, потому что 90 дней вместо 365, и не работает автоматом для поддоменов, да и опция выпуска сертификата на физлицо как-то не казалась привлекательной, светить свои личные данные в сертификате не хотелось (но не выяснял, какие данные были бы засвечены).

ringill ★
() автор топика
Ответ на: комментарий от ringill

Сегодня продлевает, завтра не продлевает.

Выпускается множество сертификатов на протяжении долгого времени. Еще ни разу не было проблем.

не работает автоматом для поддоменов

wildcard-? Работает. Только там другой метод валидации нужен и доступ к DNS-серверу (DNS API, etc.). Кроме того, можно достаточно много конкретных поддоменов описать в одном сертификате (каждый требует отдельной валидации). Или выпускать для разных (групп) поддоменов отдельные сертификаты.

светить свои личные данные в сертификате не хотелось

Facepalm. Любой доступный e-mail-адрес админа. Причем даже от (обязательности) этого вроде бы уже давно отказались. Еще можно имя сервера «засветить», хотя для доменов, припаркованных к этому серверу, имя сервера и так легко определить. А для домашнего компьютера вполне может быть так: «creation_host»: «Computer» (реальное имя компьютера, с которого я пишу это сообщение).

P.S. И это не в сертификате! Посмотрите сертификат данного форума. Где там личные данные?

estic
()
Последнее исправление: estic (всего исправлений: 1)
Ответ на: комментарий от firkax

Только что создал корневой и конечный сертификат, каждый на 10 лет, импортировал корневой в браузер, запустил сайт с конечным, всё хорошо работает. Chromium. Может быть это в Firefox-е безопасность головного мозга…

vbr ★★★★★
()
Ответ на: комментарий от estic

wildcard-? Работает.

В инструкции на Госуслугах написано:

Не допускаются значения типа WildCard: *.mydomain.ru.

Если на самом деле допускаются, то откуда же мне было знать. Идея написать на форум приходит после мытарств, а не до.

Кроме того, можно достаточно много конкретных поддоменов описать в одном сертификате

Аналогично, в инструкции на получение DV-сертификата сказано про один домен. (А в инструкциях на OV, ссылки на которых приведены в посте, написано «до 99»).

Посмотрите сертификат данного форума. Где там личные данные?

Сертификат ЛОР-а выдан LE, поэтому не считается. Сейчас увидел, что в запросе на сертификат Минцифры данные физлиц, в отличие от компаний, не включаются, но что уж теперь.

ringill ★
() автор топика
Ответ на: комментарий от firkax

Меня такая мысль посетила: а могла бы быть ситуация, что срок корневого сертификата меньше конечного? Типа корневой на 10 лет выпущен, а конечный на 99? Тогда такой сертификат и должен быть невадидным кмк.

bbc69
()
Ответ на: комментарий от ringill

Сертификат ЛОР-а выдан LE, поэтому не считается.

Я про LE и писал. Ладно. Вы провели эксперимент, который я до сих пор ленился сделать. Правда, я собирался проверить именно выпуск DV-. Понятно, что с другими будет намного больше бюрократии.

Если будете экспериментировать и с DV-, опишите эксперимент, пожалуйста. Интересует возможность автоматизировать валидацию.

estic
()
Ответ на: комментарий от ringill

В инструкции на Госуслугах написано:

– subjectAltName — расширение, определяющее альтернативное имя субъекта — DNS-имя, равное указанному в CN. В запросе обязательно должно быть указано одно значение.

Это странно. Почему только одно значение? (Куда писать поддомен www?) Или все-таки имеется в виду, что в одном значении можно указать несколько имен (через запятую, как обычно)?

estic
()
Ответ на: комментарий от estic

В инструкции на OV явно указано «хотя бы одно» значение, и приведён пример, где два через запятую, а в инструкции на DV ничего этого нет.

ringill ★
() автор топика
Ответ на: комментарий от ringill

а в инструкции на DV ничего этого нет

Похоже, DV- сделали, просто чтобы было. Воздержусь пока от изучения этого чуда. Пусть LE сначала выпуск для VK заблокирует. Тогда начнем бояться :)

estic
()
Последнее исправление: estic (всего исправлений: 2)
Ответ на: комментарий от mumpster

LE тоже описал свои параметры перехода (в конечном итоге даже не 47 дней, а 45 - это, видимо, более красивое число): https://letsencrypt.org/2025/12/02/from-90-to-45

Самое веселое - «a 7 hour authorization reuse period» (это вместо текущих 30 дней)!

В статье от LE также есть ссылка на CA/Browser-форум, где подробно описаны новые требования и сроки их реализации.

estic
()
Ответ на: комментарий от mumpster

В статье по вашей ссылке написано, что Яблоко было инициатором.

А по существу я думаю, что месяц с запасом нормально даже для ручного выпуска/установки, если бы не упомянутые мной «7 часов». Я сначала подумал, что это описка (перепутали дни с часами), но похоже, что нет. Хотя в общих требованиях оставили 10 дней.

Нужно будет внедрять полную автоматизацию, срочные уведомления об ошибках и т.п. Наверное, проще будет не продлевать, а каждый раз выпускать, как новый, если позволят.

estic
()
Последнее исправление: estic (всего исправлений: 1)
Ответ на: комментарий от estic

Самое веселое - «a 7 hour authorization reuse period» (это вместо текущих 30 дней)!

А не все равно? Обычно ведь сертификат выписывают сразу после authorization.

maxcom ★★★★★
()
Ответ на: комментарий от mumpster

Как я уже написал, это всё правила для публичных CA, к проверкам браузера для частных сертификатов это не имеет никакого отношения.

vbr ★★★★★
()
Ответ на: комментарий от maxcom

Спасибо, успокоили. Я почему-то подумал про другой период, но это действительно период после валидации:

We are also reducing the authorization reuse period, which is the length of time after validating domain control that we allow certificates to be issued for that domain. It is currently 30 days, which will be reduced to 7 hours by 2028.

estic
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария