Ну что же — то, чего все ожидали (не путать с «ждали») случилось. Многие российские сайты и сервисы начали переходить на сертификаты Минцифры — и у пользователей начали ломаться работавшие ранее сервисы, пользователи начали получать сообщения, что подлинность ресурса не может быть проверена. Кто‑то просто не смог продлить свой сертификат, у других сертификаты вообще были отозваны — но, в конечном итоге, это приводит к одному и тому же результату — из‑за проблем с сертификатом сайты некоторых российских компаний перестают открываться через HTTPS (каковой де‑факто уже давно стал стандартом), а получить новые сертификаты становится проблемой.

Для того, чтобы обойти это ограничение, многие российские подсанкционные компании начали использовать так называемые сертификаты Минцифры — сертификаты, подписанные российскими удостоверяющими центрами с корневым сертификатом, выпущенным Минцифры. Чем это грозит пользователю?

Если не вдаваться в подробности, то картину можно описать примерно так — либо ты ставишь сертификаты Минцифры в систему и у тебя всё работает, либо ставишь Яндекс.Браузер — в котором эти сертификаты уже вшиты — и у тебя все работает, либо сидишь без сервисов. Выбор, мягко говоря, не лучший. Почему? Пойдем в обратном направлении:

  1. Сидеть без привычных цифровых сервисов — крайне грустный вариант

  2. Ставить Яндекс.Браузер — который имеет полноценный доступ к системе и пользовательским данным и разработан компанией со славной и «славной» историей — тоже не лучшая идея.

  3. Пользоваться двумя браузерами — привычным для тех сайтов где нет сертификатов Минцифры и Яндекс.Браузером для тех где они есть... Нууу, как минимум это весьма неудобно.

А что если просто поставить корневые и выпускающие сертификаты Минцифры? Ведь можно будет и пользоваться привычными браузерам, и получить доступ на сайты с сертификатами российского регулятора!

Но вот вопрос в том, насколько вы доверяете этому регулятору. Давайте рассмотрим такую интересную цепочку действий:

  1. Минцифры подписывает для какого‑нибудь абстрактного «ФГУП Мониторинга и защиты интернета» сертификат, в котором задекларировано CA:true.

  2. Компания «Sнаряд» и холдинг «МордорТелеком» выпускают комплекс аппаратно‑программной фильтрации данных, который выполняет перехват всех TLS‑соединений и их терминацию на своих серверах, и отгружают этот комплекс в ФГУП из пункта 1.

  3. Для генерации сертификатов для перехваченных TLS‑соединений используется сертификат из того же пункта 1.

  4. Поскольку корневой Минцифры сертификат добавлен в систему, браузер доверяет сгенерированному сертификату — и мы получаем классическую атаку man‑in‑the‑middle, когда третья сторона успешно прочла ваши сессии.

С этим надо что‑то делать, верно? А каждый раз, когда мы собираемся «что‑то делать» в области защиты данных, нам потребуется

Модель угрозы

  1. Третья сторона хочет получить доступ к нашим данным.

  2. Эта третья сторона действует в российской юрисдикции и при необходимости может запросить наши данные у любой российской компании — и ей эти данные предоставят.

  3. Эта третья сторона не может (или как минимум ограничена) в запросе наших данных у компаний вне российской юрисдикции.

  4. Зная это, мы поделили свои данные на те, которые можно хранить в российской юрисдикции — и те, которые лучше хранить вне России.

  5. Понимая этот факт, третья сторона (чуть не написал «злоумышленник») установила свое оборудование на линии связи между нами и нероссийскими компаниями.

  6. Эта третья сторона может вмешаться в трафик между нами и сайтом так, что мы этого не заметим без специальных средств.

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

  8. Пункты 6 и 7 третьей стороне необходимы только для несанкционированного доступа к данным на сайтах вне России, для доступа к данным на ресурсах в российской юрисдикции в этих двух пунктах нет необходимости (пункт 2 об этом прямо говорит).

И резюме — если мы хотим, чтобы эта третья сторона не получила доступ к нашим данным, расположенным вне России, нам необходимо не допустить незаметного вмешательства в наши сессии. Итого, ключевая точка — это пункт 6. И он стал возможным из‑за того, что браузер и система доверяют всем корневым сертификатам — и установив сертификаты Минцифры мы сами реализовали пункт 6.

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

  1. Механизм ДНС — большинство ресурсов «для России» живут в доменах.RU,.SU и.РФ

  2. Механизм nameConstraint — скоуп действия дерева сертификата и всех его субсертификатов (подписанных им) может быть ограничен через механизм nameContraints, который позволяет указать для каких доменов применимы сертификаты этого дерева сертификатов.

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

  4. Реакция системы — для уменьшения санкционных рисков всем компаниям российской юрисдикции которые держат свои ресурсы вне национальных доменов, рекомендовано переезжать в национальные домены.

Оцениваем — поскольку большинство российских крупных компаний в российские домены либо переехало, либо переедет в ближайшее время, нам будет достаточно ограничить действие корневого сертификата Минцифры национальными доменами. Это приведет к тому, что вне доменов RU/SU/РФ наши системы не будут принимать из дерева корневого сертификата Минцифры.

Ключевой пункт — для того, чтобы обеспечить конфиденциальность, вам необходимо проделать это все самостоятельно! Тот, кто владеет приватным ключом корневого сертификата стоящего в вашей системе, может успешно устроить вам SSL bumping и man‑in‑the‑middle в рамках ограничений сертификата. И если то, что госорганы могут устроить нам MitM для национальных доменов, нам не критично (в модели угроз мы это отметили), то тот, кто может получить наши коммуникации с российскими ресурсами и не соответствует нашей модели нарушителя, в нашу модель угроз не вписан

Все действия сделаем с помощью OpenSSL. Я использую его на MacOS и Linux, и в примерах будут только они (владельцам Windows и безкомпьютерным пользователям могу выразить только моральную поддержку).

Поехали

Скачиваем сертификаты с сайта Госуслуг — https://www.gosuslugi.ru/crt, я скачивал вариант «для Linux» — но там во всех вариантах примерно одно и то же. Нам понадобятся корневые сертификаты (с ними мы будем работать), и опционально выпускающие (их мы менять не будем). Скачав архивы и распаковав их, мы увидим примерно такой набор файлов:

$ ls -1
russian_trusted_root_ca_gost_2025_pem.crt
russian_trusted_root_ca_pem.crt
russian_trusted_sub_ca_2024_pem.crt
russian_trusted_sub_ca_gost_2025_pem.crt
russian_trusted_sub_ca_pem.crt

Те, что с подстрокой gost нам неинтересны, если у нас не стоит какого‑нибудь Крипто‑Про или тому подобного ПО для поддержки шифрования ГОСТ.

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

$ openssl x509 -in russian_trusted_root_ca_pem.crt -text | head -n 10
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4096 (0x1000)
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
        Validity
            Not Before: Mar  1 21:04:15 2022 GMT
            Not After : Feb 27 21:04:15 2032 GMT
        Subject: C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA

Создаем свой корневой сертификат, похожий на сертификат Минцифры

$ openssl req -x509 -days 3650 -newkey rsa:4096 \
  -nodes -keyout ca.key -out ca.crt \
  -subj "/CN=Secured-Private-Root" \
  -addext "basicConstraints = critical,CA:true,pathlen:5" \
  -addext "keyUsage = critical,digitalSignature,keyCertSign,cRLSign" \
  -addext "nameConstraints = critical, permitted;DNS:.ru, permitted;DNS:.su, permitted;DNS:.xn--p1ai"

.....

$ ls -1
ca.crt
ca.key
russian_trusted_root_ca_gost_2025_pem.crt
russian_trusted_root_ca_pem.crt
russian_trusted_sub_ca_2024_pem.crt
russian_trusted_sub_ca_gost_2025_pem.crt
russian_trusted_sub_ca_pem.crt

Файлы ca.crt и ca.key — это наш корневой сертификат и ключ этого сертификата. Опции addext задают сферу применения сертификата — базовое назначение. Цели применения и ограничения на доменные имена.

Теперь создаем временную заглушку для подписи сертификата Минцифры

$ openssl req \
  -new -newkey rsa:4096 -nodes \
  -keyout temp.key \
  -out dummy.csr \
  -subj "/CN=Temporary Dummy CSR"
....
$ ls -1
ca.crt
ca.key
dummy.csr
russian_trusted_root_ca_gost_2025_pem.crt
russian_trusted_root_ca_pem.crt
russian_trusted_sub_ca_2024_pem.crt
russian_trusted_sub_ca_gost_2025_pem.crt
russian_trusted_sub_ca_pem.crt
temp.key

Обратите внимание — dummy.csr это запрос на сертификат и temp.key это его приватный ключ (впрочем, он нам не нужен).

Смотрим поле subject корневого сертификат Минцифры.

$ openssl x509 -in russian_trusted_root_ca_pem.crt -noout -subject
subject=C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA

В указанном значении subject надо в начало подставить / и заменить пару «запятая‑пробел» на тот же / — и получится subject для нового сертификата Минцифры. В нашем случае, новым subject будет


/C=RU/O=The Ministry of Digital Development and Communications/CN=Russian Trusted Root CA

Извлекаем из сертификата Мицифры публичный ключ

$ openssl x509 -in russian_trusted_root_ca_pem.crt -pubkey -noout > digital-gov.pub

$ ls -1
ca.crt
ca.key
digital-gov.pub
dummy.csr
russian_trusted_root_ca_gost_2025_pem.crt
russian_trusted_root_ca_pem.crt
russian_trusted_sub_ca_2024_pem.crt
russian_trusted_sub_ca_gost_2025_pem.crt
russian_trusted_sub_ca_pem.crt
temp.key

Создаем файл конфигурации расширений сертификата cross.conf вот такого содержания

[ cross_ca_ext ]
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always,issuer
basicConstraints        = critical, CA:true
keyUsage                = critical, digitalSignature, cRLSign, keyCertSign

И, наконец‑то, переподписываем корневой сертификат Минцифры. Будьте внимательней с примером, длинное значение subj в статье в браузере может быть показано как перенесенное на другую строку!

$ openssl x509 \
  -req -in dummy.csr \
  -CA ca.crt -CAkey ca.key \
  -CAcreateserial -days 3650 -sha256 \
  -force_pubkey digital-gov.pub \
  -out new_root_ca.crt \
  -extfile cross.conf \
  -extensions cross_ca_ext \
  -subj "/C=RU/O=The Ministry of Digital Development and Communications/CN=Russian Trusted Root CA"

Certificate request self-signature ok
subject=CN=Temporary Dummy CSR

$ ls -1
ca.crt
ca.key
ca.srl
cross.conf
digital-gov.pub
dummy.csr
new_root_ca.crt
russian_trusted_root_ca_gost_2025_pem.crt
russian_trusted_root_ca_pem.crt
russian_trusted_sub_ca_2024_pem.crt
russian_trusted_sub_ca_gost_2025_pem.crt
russian_trusted_sub_ca_pem.crt
temp.key

Переподписанный сертификат Минцифры в файле new_root_ca.crt.

Ну и финал — инсталлируем сертификаты и проверяем как они работают.

Тесты делались в Homebrew на MacOS

Тест изначального сертификата

Сначала делаем копию имеющейся базы сертификатов и чуть‑чуть подправим имеющиеся файлы

# Делаем копию баы корневых сеттификатов
$ cp /opt/homebrew/etc/ca-certificates/cert.pem \
     /opt/homebrew/etc/ca-certificates/cert.pem.orig

# Добавим в конец каждого минцифровского файла сертификатов
# пару пустых строк. В конце двух файлов отсутсвуют символы
# перевода строки и сертификаты слипаются, так что добавляем
# пару пустых строк и "ну вот теперь нормально работает"
$ for i in russian_*.crt ; do echo >> $i ; echo >> $i ; done

Инсталлируем оригинальные сертификаты Минцифры

$ cat /opt/homebrew/etc/ca-certificates/cert.pem.orig \
  russian_trusted_sub_ca_pem.crt \
  russian_trusted_sub_ca_2024_pem.crt \
  russian_trusted_root_ca_pem.crt >/opt/homebrew/etc/ca-certificates/cert.pem

Проверяем online.sberbank.ru — ошибок нет

$ openssl s_client -host online.sberbank.ru -port 443 | head -n 20
Connecting to 84.252.149.51
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 C=RU, L=Moscow, O=Sberbank of Russia, ST=77 Moscow, CN=*.online.sberbank.ru, street=Vavilova street, 19, OGRN=1027700132195, 1.2.643.100.4=7707083893
verify return:1
CONNECTED(00000005)
---
Certificate chain
 0 s:C=RU, L=Moscow, O=Sberbank of Russia, ST=77 Moscow, CN=*.online.sberbank.ru, street=Vavilova street, 19, OGRN=1027700132195, 1.2.643.100.4=7707083893
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   a:PKEY: RSA, 2048 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Nov 10 08:02:16 2025 GMT; NotAfter: Nov 10 08:02:16 2026 GMT
 1 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jul 15 12:50:41 2024 GMT; NotAfter: Jul 19 12:50:41 2029 GMT
 2 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Mar  1 21:04:15 2022 GMT; NotAfter: Feb 27 21:04:15 2032 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIIOjCCBiKgAwIBAgIQLdMEXK/HTq2JOY43jtRsYDANBgkqhkiG9w0BAQsFADBv
MQswCQYDVQQGEwJSVTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwg
^C

Проверяем sberbank.com — ошибок нет. Оригинальный сертификат Минцифры может подписать все что угодно. И это грустно

$ openssl s_client -host sberbank.com -port 443 | head -n 15
Connecting to 84.252.149.206
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
verify return:1
CONNECTED(00000005)
---
Certificate chain
 0 s:CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   a:PKEY: RSA, 2048 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jan 14 14:57:05 2026 GMT; NotAfter: Jan 14 14:57:05 2027 GMT
 1 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jul 15 12:50:41 2024 GMT; NotAfter: Jul 19 12:50:41 2029 GMT
 2 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Mar  1 21:04:15 2022 GMT; NotAfter: Feb 27 21:04:15 2032 GMT
^C

А теперь пересоздадим базу сертификатов — но уже с нашим сгенерированным корневым сертификатом — и пусть Минцифры отойдет!

Тест ограниченного сертификата

Записываем в базу НАШ корневой сертификат и переподписанный сертификат Минцифры.

$ cat /opt/homebrew/etc/ca-certificates/cert.pem.orig \
      russian_trusted_sub_ca_pem.crt \
      russian_trusted_sub_ca_2024_pem.crt \
      new_root_ca.crt \
      ca.crt >/opt/homebrew/etc/ca-certificates/cert.pem

Снова тестируем online.sberbank.ru — и ожидаем что он БУДЕТ работать

$ openssl s_client -host online.sberbank.ru -port 443 | head -n 20
Connecting to 84.252.149.51
depth=3 CN=Secured-Private-Root
verify return:1
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 C=RU, L=Moscow, O=Sberbank of Russia, ST=77 Moscow, CN=*.online.sberbank.ru, street=Vavilova street, 19, OGRN=1027700132195, 1.2.643.100.4=7707083893
verify return:1
CONNECTED(00000005)
---
Certificate chain
 0 s:C=RU, L=Moscow, O=Sberbank of Russia, ST=77 Moscow, CN=*.online.sberbank.ru, street=Vavilova street, 19, OGRN=1027700132195, 1.2.643.100.4=7707083893
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   a:PKEY: RSA, 2048 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Nov 10 08:02:16 2025 GMT; NotAfter: Nov 10 08:02:16 2026 GMT
 1 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jul 15 12:50:41 2024 GMT; NotAfter: Jul 19 12:50:41 2029 GMT
 2 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Mar  1 21:04:15 2022 GMT; NotAfter: Feb 27 21:04:15 2032 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIIOjCCBiKgAwIBAgIQLdMEXK/HTq2JOY43jtRsYDANBgkqhkiG9w0BAQsFADBv
MQswCQYDVQQGEwJSVTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwg
^C

А вот теперь самое интересное — тестируем sberbank.com — и он должен сломаться

$ openssl s_client -host sberbank.com -port 443 | head -n 15
Connecting to 84.252.149.206
depth=3 CN=Secured-Private-Root
verify return:1
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
verify return:1
depth=0 CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
verify error:num=47:permitted subtree violation
verify return:1
CONNECTED(00000005)
---
Certificate chain
 0 s:CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   a:PKEY: RSA, 2048 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jan 14 14:57:05 2026 GMT; NotAfter: Jan 14 14:57:05 2027 GMT
 1 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Jul 15 12:50:41 2024 GMT; NotAfter: Jul 19 12:50:41 2029 GMT
 2 s:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   i:C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
   a:PKEY: RSA, 4096 (bit); sigalg: sha256WithRSAEncryption
   v:NotBefore: Mar  1 21:04:15 2022 GMT; NotAfter: Feb 27 21:04:15 2032 GMT

Да, и он сломался — об этом говорит строка verify error:num-47:permitted subtree violation (чуть выше слова CONNECTED).

Теперь осталось просто добавить наши сертификаты из файлов в систему (желающие найдут инструкции в интернете), включить доверие к нашему корневому сертификату (помеченному как Secured‑Private‑Root) — и всё. Рекомендуемый порядок

  1. Сначала добавляем из ca.crt и включаем доверие к нему

  2. Затем добавляем new_root_ca.crt

Сертификат добавленный в MacOS
Сертификат добавленный в MacOS

Открываем в сафари online.sberbank.ru — работает.

Открываем sberbank.com — не работает.

Можно проверить в терминале с помощью curl:

$ curl -i https://online.sberbank.ru | head -n 15
HTTP/1.1 302 Moved Temporarily
Date: Fri, 14 Aug 2026 09:23:28 GMT
Content-Type: text/html
Content-Length: 137
Connection: keep-alive
Location: https://online.sberbank.ru/CSAFront/index.do

<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>SOWA</center>
</body>
</html>

$ curl -i https://sberbank.com | head -n 15
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

Второй тест — в Linux (использую Fedora 44)

Копируем сертификаты в систему и добавляем их в основное хранилище

$ sudo cp ca.crt new_root_ca.crt /usr/share/pki/ca-trust-source/anchors
$ sudo update-ca-trust

Тест online.sberbank.ru — должен отработать нормально (я немного исправил вызов openssl, чтобы оставить только stderr и убрать stdout в который печатаются сертификаты и выхлоп удаленной стороны)

$ openssl s_client -host online.sberbank.ru -port 443 >/dev/null
Connecting to 84.252.149.51
depth=3 CN=Secured-Private-Root
verify return:1
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 C=RU, L=Moscow, O=Sberbank of Russia, ST=77 Moscow, CN=*.online.sberbank.ru, street=Vavilova street, 19, OGRN=1027700132195, 1.2.643.100.4=7707083893
verify return:1

Так и есть — верификация штатная.

Тест sberbank.com — должна быть получена ошибка:

$ openssl s_client -host sberbank.com -port 443 >/dev/null
Connecting to 84.252.149.206
depth=3 CN=Secured-Private-Root
verify return:1
depth=2 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Root CA
verify return:1
depth=1 C=RU, O=The Ministry of Digital Development and Communications, CN=Russian Trusted Sub CA
verify return:1
depth=0 CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
verify return:1
depth=0 CN=sberbank.com, O=Sberbank, C=RU, ST=77 Moscow, L=Moscow, street=Vavilova street, building 19, 1.2.643.100.4=7707083893, OGRN=1027700132195
verify error:num=47:permitted subtree violation
verify return:1

permitetd subtree violation, как и должно быть

Заключение

Предложенная схема неидеальна — но, как мне кажется, вполне справляется со своей задачей. Да, те ресурсы, которые переехали на сертификаты Минцифры, но остались вне национальных доменов, могут не работать, но это уже значительно лучше, чем «не работает всё» или «абсолютно доверяем Минцифры».

Комментарии (118)


  1. NeoCode2
    17.08.2026 12:14

    Просто поставил виртуалку - линукс с единственным яндекс браузером, причем уже много лет назад, и из нее захожу на сайты банков и госуслуг. Если припрет - и "макс" туда же поставлю (но пока не припирает).


    1. Moog_Prodigy
      17.08.2026 12:14

      Обождите ставить "скам", даже на выделенный отдельный комп. При регистрации в нем сработают кучи привязок - в итоге без скама вы потом никуда зайти не сможете классическими методами. Ну почти. Лучше не усложнять себе жизнь. Если уж и ставить его, то и регить на левый аккаунт (а дальше включайте фантазию).


    1. 00Kirill00
      17.08.2026 12:14

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


    1. RTFM13
      17.08.2026 12:14

      Не забудьте этой виртуалке прикрыть доступ к локалке.

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

      И да, как уже написали - скам страшен не сколько своим приложением сколько самим фактом регистрации в нём.


      1. trinxery
        17.08.2026 12:14

        сколько самим фактом регистрации в нём

        Сильно больше у властей станет информации о вас после регистрации в нём?


        1. RTFM13
          17.08.2026 12:14

          При чем тут информация? Они без спроса просто перекидывают туда каналы связи. При чем, на чувствительные темы. А кто отвечает за доставку в скаме? ОООшка с тремя сотрудниками и мусорным ведром в качестве устаного капитала? Его же даже в теории нельзя привлечь к какой либо ответственности.

          PS
          Простите, не заметил 15 рублей на аватарке.


          1. trinxery
            17.08.2026 12:14

            Так это не "факт регистрации", а использование.


            1. RTFM13
              17.08.2026 12:14

              Нет. Как только зарегался начинают безальтернативно перекидывать. Можешь не пользоваться: "нет ручек - нет печенек".


          1. Houl
            17.08.2026 12:14

            Безотносительно к Максу, но так можно сказать про любой другой мессенджер.


            1. outlingo Автор
              17.08.2026 12:14

              Это скорей не про мессенджер а про сервисы которые самовольно решают переключать каналы передачи подтверждений. Хуавей и Хонор например ничтоже сумяшеся могут начать отправлять коды через воцап и телеграм. Ростелеком с чего то решил что ему будет правильно отправлять сообщения через ВК. СДЭК тоже так отличился. И кажется мне, что проблема тут в сервисах а не в мессенджерах


            1. RTFM13
              17.08.2026 12:14

              Да, но со скамом проблема особенно остро стоит.


          1. mvv-rus
            17.08.2026 12:14

            скам страшен не сколько своим приложением сколько самим фактом регистрации в нём.

            Даже вам там на Балканах (Черногория КМК) страшен? Чем же он так страшен? Вот мне он не страшен - у меня смартфона нет, вообще (мне сам смартфон страшен ;-) ), а без смарфона в MAX не зарегистрируешься.

            Не забудьте этой виртуалке прикрыть доступ к локалке.

            У вас внезапно встретился разумный совет. У меня таким образом организована работа основной виртуалки, на которой браузер стоит - он изолирована от локальной сети (чисто по тупому, пакетными фильтами), потому что производителям браузров и владельцам сайтов я не доверяю: первые закладывают туда избыток возможностей, думая о безопасности чисто номинально, а вторые - они вообще разные.

            Они без спроса просто перекидывают туда каналы связи.

            Уточните, пожалуйста, о каких каналах речь? Если вы о каналах связи с госорганами - имеют право IMHO. Но и вы, и я имеем (пока что, ибо цифровизаторы не дремлют) право, несмотря на всю цифровизацию, пользоваться традиционными каналами связи: личным посещением, заказными письмами по государственной почте и т.д.

            А кто отвечает за доставку в скаме? ОООшка с тремя сотрудниками и мусорным ведром в качестве устаного капитала? Его же даже в теории нельзя привлечь к какой либо ответственности.

            После объявления MAX национальными мессенджером за него теперь отвечает государство - и не важно, как это оформлено, по жизни оно так. И списать перед народом свои косяки на ОООшку по жизни не получится.

            PS

            Простите, не заметил 15 рублей на аватарке

            У вас на аватарке тоже 15 евроцентов нет. Так что, за свои слова и вы, и ваш оппонент отвечают, если порядочные, самостоятельно.


            1. RTFM13
              17.08.2026 12:14

              Как я вам кажется уже говорил - паспорт рф у меня есть, так что терпите или платите за меня сами. А это (паспорт) накладывает определенные обязательства (и кучу геморроя), которые проще пока выполнить чем совсем рвать все взаимодействия (так геморроя будет кратно больше).

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

              по жизни не получится

              Што?


              1. mvv-rus
                17.08.2026 12:14

                На балканах мне скам даром не нужен даже в виртуалке

                Однако, я заметил, вы против него тут как-то чересчур активно выступаете.

                потому что доступ к нему могут в любой момент прикрыть.

                Ну, у нас тут доступ много к чему прикрыли, но люди, кому этот доступ нужен как-то ведь выкручиваются, не так ли? Вот и вы выкручивайтесь, и Хабр вам в помощь, здесь дельных советов много.
                В конце концов, это ведь ваш выбор - где жить и какие именно трудности иметь - и отвечать за него чисто вам. Для цифровизаторов же вы не входите в целевую аудиторию: у них интерес удовлетворять потребности основной массы пользователей, которые живут на территории РФ и выходят в интернет через российский сегмент.
                А вообще у меня плохие прогнозы: интернет сейчас сегментируется (причем, это происходит не только в РФ) вслед за мировой экономикой и всё меньше становится пригоден в качестве трансграничной среды передачи информации.

                Што?

                Люди в массе своей не будут смотреть, на какую ООО оно зарегистрировано, а предъявят госудрству. Или, по крайне мере, выразят недовольство именно государством. Ибо все эти идеи независимости ветвей власти или самостоятельности госкорпораций местному народу плохо понятны.


                1. RTFM13
                  17.08.2026 12:14

                  Ну как бы есть что предъявить и без скама. И много напредъявляли?

                  С коммерческой ооошкой куда больше шансов, даже если она с госкрышей.


          1. KPbICMAH
            17.08.2026 12:14

            Ну вот я зареган в Максе, что-то не замечаю "перекинутых каналов связи". В Госуслуги на компе как заходил через 2FA код из вражеского Гугл-афентикатора, так и захожу (на телефоне по отпечатку пальца); штрафы ГИБДД как приходили в Госуслуги, так и приходят. А, сообщение от Еаптеки о готовности заказа пришло в Макс! Однако, одновременно прилетело СМС и письмо на эл. почту. Что и где ещё мне перевели в Макс? Просветите, а то вдруг что-то важное упускаю


  1. baldr
    17.08.2026 12:14

    То есть вы просто ограничили действие сертификата на зоны .ru и .su (и .рф)? Оригинально, но как-то слишком грубо.

    Я вполне могу захотеть иметь свой сайт mysecrets.ru и не хотеть чтобы мой трафик слушали. Я выпущу сертификат от letsencrypt, но с вашим решением MiTM всё ещё возможна. Причём, как хозяин сайта, я не могу на это повлиять для посетителей (вас), если они будут следовать вашему способу.

    По-моему вариант с отдельным профилем браузера (того же firefox) для недоверенных сайтов - достаточно оптимальный.


    1. JBFW
      17.08.2026 12:14

      С учётом обязательной верификации ru через ГУ и продолжающимися тенденциями вас могут просто обязать предъявить сайт к осмотру.

      Для защиты детей.


      1. baldr
        17.08.2026 12:14

        Да, я хотел об этом тоже дописать, но решил играть в оптимиста.

        Тем более, что если у сайта будет 2-3 пользователя, то вряд ли он скоро привлечет какое-то внимание


    1. outlingo Автор
      17.08.2026 12:14

      Я вполне могу захотеть иметь свой сайт mysecrets.ru

      Ну, чтобы быть вам делегированым, ваш домен должен быть подтвержден через Госуслуги. Поэтому к вам (ли к вашему хостеру) просто придут ножками.

      Тем не менее, если вы все решили держать сайт в российском национальном домене и не хотите чтобы ваш сайт можно было MitM-нуть, в том же nameConstraints добавить что-то вроде excluded;DNS:mysecrets.ru,DNS:.mysecretes.ru


      1. baldr
        17.08.2026 12:14

        Не мне, а каждому пользователю, который захочет на него ходить. И выпускать новый доверенный сертификат для нового такого сайта? Не много ли мороки?


        1. outlingo Автор
          17.08.2026 12:14

          Не много ли мороки?

          Удобство и конфиденциальность как правило антагонистичны. Чем удобней, тем хуже с конциденциальностью, и наоборот - чем лучше с конфиденциальностью - тем хуже с удобством.


      1. LF69ssop
        17.08.2026 12:14

        А что общего у домена и сайта?
        Домен через госуслуги, а сайт в условном хетцнере.

        Я в целом не очень понимаю суть, для нескольких ресурсов люди готовы поднимать виртуалки, настраивать отдельные копии браузеров но не готовы кликнуть на "понимаю риск, продолжаю"?


        1. BugM
          17.08.2026 12:14

          Потому что вы риск не понимаете.


          1. mvv-rus
            17.08.2026 12:14

            Для громадного большинства таких ресурсов TLS вообще нужен, как зайцу - стоп-сигнал, в основном - чтобы провайдеры не подменяли рекламу на сайте своей - а пользователям, как вы понимаете, это без разницы, чья реклама. Соответственно, риска для пользователей в таких случаях нет.
            В тех немногих случаях, когда TLS защищает действительно важные данные - пароли и т.п. - можно поработать вместо системы/браузера и проверить исходный сертификат цепочки сертификатов вручную (благо браузер обычно цепочку отображает и сам проверяет все промежуточные сертификаты), у самоподписанного сертификата Минцифры в корне просто сравните отпечаток его ключа с известным вам отпечатком сами, глазами.

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


            1. BugM
              17.08.2026 12:14

              Вы не сможете проверить цепочку вручную. Вообще никак. Или вы все хеши наизусть знаете?


              1. mvv-rus
                17.08.2026 12:14

                Вы не сможете проверить цепочку вручную. Вообще никак.

                Как это не могу, если сам это неоднократно делал - ещё с тех времен, когда в нулевых управлял корпорятивной PKI? Тогда браузером был в основном IE, и в нем это было делать удобно. Впрочем, в FireFox, которым я пользуюсь сейчас, я тоже никаких затруднений не испытывал.
                Повторяю мысль: проверять промежуточные и конечный сертификат в цепочке не надо, система/браузер это и так делает самостоятельно (и отображает результат в удобном виде). Так что их хэшами (точнее, отпечатками ключа) можно не заморачиваться. Достаточно проверить корень цепочки. Отпечаток ключа корневого сертифката от Минцифры можно узнать, если этот сертификат(файл) скачать себе, но никуда не устанавливать: в Windows, к примеру, его отлично показывает Проводник прямо при просмотре файла сертификата. Вот с этим отпечатком и сравнивается отпечаток корня цепочки.


                1. BugM
                  17.08.2026 12:14

                  Вы прямо глазами хеши сверять будете? Компьютеры были придуманы чтобы человек таким не занимался.


                  1. mvv-rus
                    17.08.2026 12:14

                    Вы прямо глазами хеши сверять будете?

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

                    Компьютеры были придуманы чтобы человек таким не занимался.

                    По моему глубокому убеждению, человек должен быть способен (в принципе, напрягшись) сделать это (и много чего другого) без компьютера. А уж напрягаться и делать ли это самому, глазами, или поручить компьютеру, чтобы не напрягаться - это уже предмет личного выбора.


                    1. BugM
                      17.08.2026 12:14

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

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


                      1. mvv-rus
                        17.08.2026 12:14

                        Я не говорю, стоит или не стоит. Мне важно, возможно или невозможно.
                        А стоит или не стоит - это уже предмет личного выбора (ну, или выбора предприятия),
                        Так что ответ на ваши заявления в исходных комментариях - риск можно понимать и можно оценивать и парировать вполне рационально, но это обычно это излишне трудоемко.

                        А вот отказ от установки корневого сертификата Минцифры из-за угрозы MitM атаки я считаю для большинства людей рационально необоснованным: вероятность для них лично невелика, а сам факт атаки легко вскрывается и очень плохо влияет на репутацию государства среди населения. Но вот отказываться или нет - этот выбор, и для меня это несомненно, личное право каждого.
                        И меня радует, что у этого выбора есть варианты, в которых не нужно ни отказываться от использования корневого сертификата Минцифры вообще, ни быть вынужденным полагаться на трудоемкую ручную проверку. Одним из таких вариантов я лично, кстати, и воспользовался.

                        PS Яндекс-браузер я для себя таким вариантом, кстати, не считаю: я Яндексу не доверяю, поскольку он, как владелец широко используемой рекламной сети, имеет явную материальную заинтересованность в сборе излишнего кличества персональных данных (ну, а в неизменнно благие намерения кого-либо я вообще по жизни не верю).


                      1. BugM
                        17.08.2026 12:14

                        Для почти любого читающего нашу переписку невозможно.

                        Есть куча нормальных вариантов для всех.

                        Пенсионерам я смело рекомендую ставить Яндекс браузер и не думать, это лучшее решение для них.

                        Себе я поставил профиль Firefox. Это хороший вариант для тех кто знает слово профиль и сертификат и из этого следует.

                        Для тех кому пофиг и кто уверен что скрывать нечего я покажу как корневой сертификат в систему поставить. Такие люди у меня тоже в знакомых есть.

                        Все остальное уже совсем какие-то корнер кейсы. И стоит про это писать. Чтобы случайный читатель не решил что жать кнопку игнорировать это нормальное решение для него.


                      1. mvv-rus
                        17.08.2026 12:14

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

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

                        И стоит про это писать.

                        Несомненно. Чтобы случайный читатель был в курсе, что нажимать кнопку игнорировать - это не единственное решение его проблемы.

                        А в целом вы в исходном комментарии ответили в целом правильно, но IMHO чрезмерно категорично.


                      1. BugM
                        17.08.2026 12:14

                        Тогда хорошо. Я часто переживаю за тех кто нагуглит и прочитает наискосок. Мол жать игнорировать хорошее решение (нет). И упустит все остальное.

                        Я давно в околостатистике и у меня профессиональное искажение. Все === все статистически значимо, если другое не указано явно.


    1. vanxant
      17.08.2026 12:14

      Любой сайт в нац. доменах и любой сайт на отечественном хостинге подвержен угрозе получения поддельного сертификата letsencrypt.


      1. outlingo Автор
        17.08.2026 12:14

        Любой сайт в нац. доменах и любой сайт на отечественном хостинге подвержен угрозе получения поддельного сертификата letsencrypt.

        Напомните, пожалуйста,  трехмесячный MitM для jabber.ru в 2023 году помог устроить хостинг какой страны?

        В статье идет речь о методике, которая позволит затруднить российским провайдерам и структурам перехватывать сессии российских пользователей к не-российским ресурсам.


        1. RTFM13
          17.08.2026 12:14

          Виртуалка или отдельное устройство решает туже проблему гораздо лучше (степень изоляции выше). Но как вариант - пусть будет (я, правда, не читал но идея понятна).


        1. mvv-rus
          17.08.2026 12:14

          Напомните, пожалуйста, трехмесячный MitM для jabber.ru в 2023 году помог устроить хостинг какой страны?

          IMHO вы зря не дали ссылку: не только лишь все помнят сейчас эту историю.

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


          1. outlingo Автор
            17.08.2026 12:14

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

            Ну да, хетцнер взял и просто сам перенаправил трафик куда-то, где делался ssl-bumping :-)

            это же общепринятая мировая практика, все так делают постоянно, любой может прийти к хостеру и сказать "а перенаправьте ка трафик вооон того сервера на мой сервер", и хостер сразу оп - и выполняет. И никакого вмешательства от какого либо государства тут не было, 146%


            1. mvv-rus
              17.08.2026 12:14

              Тем не менее, по тамошним европейским понятиям там никому предъявить нечего: можно считать, что они удачно отмазались.


    1. 00Kirill00
      17.08.2026 12:14

      Добавь свой домен в секцию excluded в том же nameConstraints, и цепочка от Минцифры для него перестанет быть валидной. Стандарт позволяет гибко комбинировать разрешенные и запрещенные зоны


  1. V1tol
    17.08.2026 12:14

    Ещё до всех этих приколов с сертификатами для работы с госухой поставил Chromium GOST (про его существование почему-то все забывают). Просто закинул сертификаты в него и пользуюсь браузером только для банков и прочей налоговой.


    1. vis_inet
      17.08.2026 12:14

      Chromium GOST

      А его версии следуют за обновлениями от Гугла?


      1. V1tol
        17.08.2026 12:14

        Вполне. Отставание на единичку считаю некритичным.
        https://github.com/deemru/Chromium-Gost/releases
        https://update.cryptopro.ru/get/chromium-gost/version



    1. 00Kirill00
      17.08.2026 12:14

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


      1. V1tol
        17.08.2026 12:14

        Всё зависит от предпочтений. Если нужен ещё один браузер, то хромиум отличный вариант. А бонусом гостовое шифрование пусть будет - не удивлюсь, если те же госуслуги скоро часть функционалана него завяжут. Всяко лучше, чем яшка.


  1. AVikont
    17.08.2026 12:14

    Как по мне, гораздо проще использовать два браузера или даже один браузер с двумя профилями.


  1. JBFW
    17.08.2026 12:14

    Падажжите-пададжите, верно ли я понимаю что можно так самому подписать себе, например, сайт sber-bank.ru?

    Ну правда остаётся нюанс с подтверждением доменного имени


    1. baldr
      17.08.2026 12:14

      Себе можно, конечно. Но суть в том, что вы себе свой собственный доверенный сертификат ставите сначала. Атака тут как бы не очень простая получается.


    1. outlingo Автор
      17.08.2026 12:14

      Самому себе можно подписать все что угодно, но там может быть экзотика со всячекими certificate pining.


  1. Siemargl
    17.08.2026 12:14

    Если вы идете на сайт nanohub.org подписанный LetsEncrypt итп, при чем тут сертификаты Минцифры?

    Разумеется, не с яндексбраузера.


    1. outlingo Автор
      17.08.2026 12:14

      А если я не люблю яндекс-браузер и не хочу пользоваться двумя браузерами и разными профилями?

      Мне, например безразлично если российские госслужбы будут смотреть, что я делаю в сбербанк-онлайне и что храню на яндекс-диске. Они и так то посмотрят, яндекс и сбер выдадут им все по первому же вопросу. Потому тот факт, что ТСПУ смогут расшифровать мою сессию до росиийских ресурсов, меня не особо беспокоит.

      Но я против того, чтобы они видели что я делаю в эппловском аккаунте и что храню на гугловском диске. Поэтому если ТСПУ не сможет забампить мою сессию в гугл и эппл - меня это устроит.


      1. Siemargl
        17.08.2026 12:14

        И я про то.

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


        1. outlingo Автор
          17.08.2026 12:14

          обычный браузер с импортным сертификатом сайта не даст просмотреть трафик российским госслужбам

          https://online.vtb.ru - он открывается в вашем "обычном браузере" с "импортным сертификатом"? Сбер - точно не открывается, поэтому на яблофоне пользователи например лишились не только приложений, но теперь даже веб-версий.


          1. VVitaly
            17.08.2026 12:14

            А в чем проблема добавить именно его сертификат в доверенные, в нужном вам профиле браузера? :-) (Исключая закрытые OS)


          1. serejk
            17.08.2026 12:14

            У меня работает app на айфоне.


          1. Siemargl
            17.08.2026 12:14

            Я ему про сторонние импортные сайты, а он талдычит про ВТБ.

            Борцуны они такие борцуны :fail:


          1. Geth
            17.08.2026 12:14

            Если именно про ВТБ, то у них 2й домен есть с сертификатом от LE: online.vneshtbank.ru


      1. RTFM13
        17.08.2026 12:14

        Потому тот факт, что ТСПУ смогут расшифровать мою сессию до росиийских ресурсов, меня не особо беспокоит.

        Кстати, напрасно. У условного сбера информацию надо запрашивать и как-то оформлять и обосновывать хотябы внутри конторы. А тут митм никаких следов не оставляет. Потом будете доказывать, что не передавали код из смс мошенникам.

        Т.е. диапазон векторов атаки расширяется хоть и не сильно.


        1. mvv-rus
          17.08.2026 12:14

          А тут митм никаких следов не оставляет.

          Оставляет очень даже: сертификат, которым шифруется соединение с сайтом, в браузере вполне виден (и я, кстати, иногда посматриваю - что поделать, паранойя :-) ). При желании его, наверное, можно писать в журнал браузерным расширением - но я до этого ещё пока что не дошел, у меня паранойя в более легкой степени :-)


  1. vanxant
    17.08.2026 12:14

    Два браузера это давно норма. Особенно если у вас ЭЦП с рутокеном и т.д. Ставить это в дефолтный браузер тупо тупо.


  1. Quqas
    17.08.2026 12:14

    есть и куда более простой костыльный способ

    на ругню хрома просто жмём "всё равно" и подключаемся без этих сертов

    с bspb норм работает

    с сбером тоже но тогда это "всё равно" нужно жать стопицот раз на каждой ссылке которые смотреть в devtool

    но в итоге тоже работает

    пока кэш не чистить хром эти "всё равно" запоминает аккурат только для разрешённых доменов


    1. outlingo Автор
      17.08.2026 12:14

      И после очередной выкатки, кою в нынешние врмена непрывного деплоя во имя деплоя и фич во имя KPI принято делать чем чаще тем лучше, вы вудете входить в девтул и смотреть "да что там опять сломалось". Звучит как план, но такой план наверное не всем понравится.


      1. Quqas
        17.08.2026 12:14

        план не план, но как костыль доступнее домохозяйке чем предложенное

        сам сбером и вовсе не пользуюсь, но проверил

        а акбарс пока что блудняку не поддался


        1. outlingo Автор
          17.08.2026 12:14

          Если бы я не топил за приватность - то просто выложил бы такой переподписанный сертификат и его корневой для всех "домохозяек". Но домохозяйкам это не интересно совершенно и никакая приватность их не волнует, так что им домохозяева все настроят, либо мужья на час, либо в МФЦ и сбере сделают.


  1. KonstantinTokar
    17.08.2026 12:14

    author.today и livejournal.com будут доступны?


  1. ifap
    17.08.2026 12:14

    сертификаты Минцифры — сертификаты, подписанные российскими удостоверяющими центрами

    Вот уже с этого места, пожалуйста, поподробнее: названия этих УЦ? ;-)



  1. mvv-rus
    17.08.2026 12:14

    Заголовок не совсем удачный: по сути, речь идет о том, как доверять сертификатам Мицифры ограниченно.

    Сам описанный в статье механизм (certificate cross-signing с ограничениями, вроде NameConstraint) существует давно, я его помню ещё по работе в нулевые годы. Причем, по своему статусу это не ad hoc решение (оно же костыль), как в том же Яндекс-браузере, а докуметированная возможность. Но тут возможен затык в том, что клиенты эту возможность могут не поддерживать, причем - каждый конкретно.
    Поэтому очень полезной является информация о том, какие клиенты его реально поддерживают (а какие нет). От PKI в MS Windows я подвоха не ожидаю - всё это было реализовано и документировно ещё в те же самые нулевые, но не все программы даже в Windows пользуются системной реализацией PKI (например, Firefox не пользуется). Так что именно за эту дополнительную информацию статье от меня плюс.

    PS Лично я в интернет смотрю исключительно со стационарного компьютера, на котором поднять отдельную виртуалку для просмотра сайтов с цепочкой доверия, идущей от сертификата от Минцифры, совсем не сложно - и я это сделал ещё когда только этот сертификат появился. Потому что о пропущенной при создании суверенного российского интернета угрозе блокировки PKI мне было известно ещё со времен обсуждения закона об этом самом суверенном интернете: я посмотрел на потную борьбу сторонников свободы со сторонниками независимости, убедился, что понятием модели угроз ни одна из сторон не пользуется, обнаружил неучтенную угрозу - отсутствие этой самой суверенной PKI, прикинул, как я буду ее парировать лично для себя и на этом успокоился.


    1. vis_inet
      17.08.2026 12:14

      Какой виртуалькой пользуететь?

      Какой ОС в ней и каким браузером?


      1. konkere
        17.08.2026 12:14

        я себе в контейнер упаковал ябраузер с внц


    1. outlingo Автор
      17.08.2026 12:14

      В макси и линуксе фича подеерживается, а вот в Андроиде и иосе печально


  1. litos
    17.08.2026 12:14

    А подскажите такой вопрос. В настоящий момент при заходе на сайт с российским сертификатом браузер просто ругается на сертификат. Я ведь могу нажать кнопку Принять и пользоваться дальше. Зачем мне ставить для этого корневой сертификат минцифры? Разве что для защиты от фишинга и подмены DNS?


    1. PavelBelyaev
      17.08.2026 12:14

      Можно наверное все в доверенные плюсануть, но там есть такие тонкости, недавно столкнулся, например оплачиваю коммуналку, меня перекидывает на эквайринг вроде Газпром или втб, у них можно или карту вбить или кнопочку сбер пей нажать, это когда qr код показывает, сканируешь приложением на телефоне, одобрить и не вводишь данные карты. И вот этот эквайринг редиректит на какой то поддомен, там еще на какой то, загружается всякая статика и отправляются запросы, потом в финале обратно на сайт коммуналки перекидывает и в процессе много поддоменов, это как у гугла abc.googlevideo.com их там бесконечно много во всех локациях.


    1. ris58h
      17.08.2026 12:14

      для защиты от фишинга и подмены DNS

      Да.


    1. mvv-rus
      17.08.2026 12:14

      Я ведь могу нажать кнопку Принять и пользоваться дальше. Зачем мне ставить для этого корневой сертификат минцифры? Разве что для защиты от фишинга и подмены DNS?

      Тут возникает вопрос, сможет ли работать скрипт на странице. Особенно, если он берется с другого origin, про который вас браузер может и не спросить, потому что страница берется не оттуда. Но как это на практике в разных браузерах - не в курсе, потому что я по специальности не фронтовик (frontender).


    1. vvm13xx
      17.08.2026 12:14

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


  1. Mialista
    17.08.2026 12:14

    А почему не использовать политику CACertificatesWithConstraints? Этого же должно хватить?


    1. Pavel7
      17.08.2026 12:14

      Вариант автора глобально разрешает ограниченное доверие на уровне ОС, а не только в chrome. Для chrome можно и не париться с политикой, есть UI chrome://certificate-manager/localcerts/usercerts где всё это можно накликать.


  1. 00Kirill00
    17.08.2026 12:14

    Изящный костыль через nameConstraints, снимаю шляпу. Давно забытая фича из стандартов X.509 внезапно пригодилась для локального сдерживания чужого CA


  1. Vicollel
    17.08.2026 12:14

    Статья по сути вредоносная, так как при выполнении операций, приведенных в статье, становится возможной атака mitm для всех сайтов в доменной зоне .ru. Благо что человек не понимающий этого и статью скорее всего не поймет, а тот что может выполнить подобные манипуляции и сам догадается, что делать этого не стоит


    1. CherryPah
      17.08.2026 12:14

       становится возможной атака mitm для всех сайтов в доменной зоне .ru

      После того как в зоне ru можно только через госуслуги регаться, для получения информации никакой mitm с сертификатами не нужен


      1. trinxery
        17.08.2026 12:14

        Какая здесь причинно-следственная связь?


        1. CherryPah
          17.08.2026 12:14

          примерно как в мемном xkcd #538 про гаечный ключ


          1. trinxery
            17.08.2026 12:14

            Издержки такого mitm'а совсем другие.


      1. KinshoMokuroku
        17.08.2026 12:14

        Договор с регистратором и так по паспорту всю дорогу был, так что проблем получить информацию и не было. Госуслуги разве что зарегистрированных под фиктивными документами отсеяли.


    1. VADemon
      17.08.2026 12:14

      Об этом прямым текстом написано в "модели угроз", пункт 2.


  1. Dzzzen
    17.08.2026 12:14

    ТС не в курсе, но уже с 2023 года в любой браузер на базе Chrome можно установить дополнительные корневые сертификаты.
    chrome://settings/security - Настройки сертификатов - Установленные вами
    Ставите любой отдельный браузер, добавляете в него серты минцифры, и с него заходите на остатки интернета.


    1. KonstantinTokar
      17.08.2026 12:14

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


      1. mvv-rus
        17.08.2026 12:14

        Это общая проблема дизайна всей текущей реализации PKI - неизбирательное доверие: любой УЦ, добавленный в список корневых доверенных, а не только от Минцифры, может подписать что угодно.

        Полагаю, что ноги у этой проблемы растут из того факта, что сертификаты использую пространство имен X.500, а имена сайтов живут в пространстве имен DNS.


    1. ris58h
      17.08.2026 12:14

      Думаю, что он в курсе, т.к. об этом написано в начале статьи. Или вы ее не читали?


      1. PetrSerg
        17.08.2026 12:14

        В каком месте статьи автор написал про "любой браузер на базе Chrome"?

        Он даже про удостоверяющие центры не смог внятно ответить.


        1. ris58h
          17.08.2026 12:14

          В каком месте статьи

          В третьем параграфе в пункте 3.


          1. Dzzzen
            17.08.2026 12:14

            Там речь про яндекс браузер со встроенными сертификатами, которому ТС не доверяет. Хотя он просто не умеет его готовить.
            Я же писал про то, что сейчас сертификаты можно встроить в любой браузер (например, я выбрал Brave), и с этого отдельного браузера ходить на гос.сайты.
            А на остальные сайты - ходить с обычного браузера.


            1. ris58h
              17.08.2026 12:14

              Про "не доверяет" - это пункт 2. В пункт 3 речь про использование двух браузеров. У вас Brave, у него Яндекс - разницы нет в этом контексте.


              1. PetrSerg
                17.08.2026 12:14

                Разница большая. В Яндексе, хочешь или нет, сертификат постоянно присутствует, а в остальных, типа Brave, по желанию его пользователя.


                1. ris58h
                  17.08.2026 12:14

                  Человек не хочет использовать два браузера. Какая разница какой будет второй, если второй недопустим по условию задачи?


            1. PetrSerg
              17.08.2026 12:14

              В Brave (и Vivaldi, к примеру) можно даже в отдельный профиль установить.


  1. zapparello2
    17.08.2026 12:14

    Забавно, как десятилетиями мамкины пирожки спокойно жили с man-in-the-middle от АНБ (на минутку - не просто государства, а конгломерата государств, имеющих своей целью прямого нанесения вреда гражданам России - мне, моим детям, родственникам, друзьям и знакомым), и как резко возбудились, когда появилась угроза man-in-the-middle от своего государства, имеющего своей целью защиту этих же людей.

    И никто не задаётся вопросом, как же так произошло, что за десятилетия существования протокола ssl и https ни один российский удостоверяющий центр не смог попасть не то, что в список корневых УЦ винды, но даже в “опенсорсные” библиотеки. Несмотря на то, что ГОСТ на шифрование и подпись с огромным трудом и скрипом в SSL пропустили.

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

    Начинайте минусовать, мамкины пирожки. Неприятная правда такая неприятная.


    1. GoodchildTrevor
      17.08.2026 12:14

      К сожалению, у пирожка не хватает кармы


    1. blind_oracle
      17.08.2026 12:14

      Мне родное государство нанесло гораздо больше ущерба чем Обама, срущий в подъездах и прочие злобные "англосаксы"...


    1. Gonchar_POTT
      17.08.2026 12:14

      Главная цель нашего государства - защита людей, конечно же, но с маленьким (крохотным) уточнением: не всех людей. И, на всякий случай, если вы подумали что-то плохое, "не всех людей" означает "детей".


    1. kogemrka
      17.08.2026 12:14

      Начинайте минусовать, мамкины пирожки. Неприятная правда такая неприятная.

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


    1. selivanov_pavel
      17.08.2026 12:14

      резко возбудились, когда появилась угроза man-in-the-middle от своего государства, имеющего своей целью защиту этих же людей

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

      АНБ точно не посадит меня за то, что в 2008 году я лайкнул вконтакте фотку какого-то человека, который в 2022 начал писать посты, дискредитирующие российскую армию. Если я вдруг построю в России успешный бизнес, не поделившись с уважаемыми людьми - отжимать его у меня будет опять же не АНБ.


      1. mvv-rus
        17.08.2026 12:14

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

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

        АНБ точно не посадит меня за то, что в 2008 году я лайкнул вконтакте фотку какого-то человека, который в 2022 начал писать посты, дискредитирующие российскую армию.

        Правильно, NSA не сажает, оно просто собирает информацию. А посадить вас на основе этой информации могут совсем другие люди, которые по каким-то своим причинам решат, что вы занимаетесь киберпреступностью или ещё как-то нарушаете законы США. Причем - не только в США: приезжаете вы, к примеру, в Таиланд, и внезапно оказываетесь не на пляже, а на киче, потому что из США пришел запрос на вашу экстрадицию по этому самому неведомому решению - особенность США в том, что они не ограничивают свою юрисдикцию своей национальной территорией.

        Или вашу информацию могут передать людям, которые имеют сделать вам предложение, которое вам не понравится, но от которого вы не сможете отказаться. А такие люди сейчас есть, причем, из вполне официальных структур дружественного США государства - к примеру, из ГУР МО или СБУ - и американские законы передавать им информацию не запрещают.

        А если я ещё подумаю, я придумаю и другие столь же натянутые случаи, как пара приведенных выше или как ваше привлечение за лайк за фотку ;-)

        Вообще, следует понимать, что государство защищает народ примерно так же, как пастух защищает стадо - не от всех угроз, но от некоторых - защищает.
        А ешё следует понимать, что сейчас невозможно найти место, где можно жить спокойно, не имея дело ни с одним государством. Так что всё, что нам доступно - это обменивать одни риски, от общения с одним государством, на другие риски, от общения с другим государством.

        Короче, государство - это крыша. И если вы чем-то денежным занимались в 90-е, то, наверное, помните, что без крыши работать было нереально.


  1. dude_sam
    17.08.2026 12:14

    Avito/DNS/Amazon/etc -> Android ~10.000 -> SIM -> any (trusted) Russian VPN -> Gosuslugi/Banks/Yandex/etc -> ??? -> Profit!

    ¯\_(ツ)_/¯

    U menya prosto net RUS raskladky na noute... Soryan!


  1. pnetmon
    17.08.2026 12:14

    Выбор, мягко говоря, не лучший. Почему? Пойдем в обратном направлении:

    1. Сидеть без привычных цифровых сервисов — крайне грустный вариант

    2. Ставить Яндекс.Браузер — который имеет полноценный доступ к системе и пользовательским данным и разработан компанией со славной и «славной» историей — тоже не лучшая идея.

    3. Пользоваться двумя браузерами — привычным для тех сайтов где нет сертификатов Минцифры и Яндекс.Браузером для тех где они есть... Нууу, как минимум это весьма неудобно.

    занятно что в пункте 3 о Яндекс Браузере нету слов "смотри пункт 2", а про какую-то неудобность. А ведь вторым браузером с сертификатом может быть не только яндекс.


    1. RTFM13
      17.08.2026 12:14

      Разделение профилей в браузере было полезным задолго до всего этого с сертификатами.


      1. mvv-rus
        17.08.2026 12:14

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


  1. TheRaven
    17.08.2026 12:14

    Раскрывать всю *.ru это как-то жирно, есть же красивый вариант где и яндексовый зонд ставить не надо и список доменов ограничен желаемыми: https://habr.com/ru/articles/1066372/


    1. outlingo Автор
      17.08.2026 12:14

      Большинство задач можно решить более чем одним способом. Я использую то что описал, вы можете использовать то, что нравится вам.


  1. dimaaannn
    17.08.2026 12:14

    В нынешнее время надо скорее думать о политике zero trust. Ну или 0.5 trust, тобишь "на пол шишечки" - как попытка компромисса.

    Любое изменение сертификата - это повод вывести окно для пользователя "сертификат для сайта ХХХ был обновлен, продолжить?" Вроде бы встроить такой механизм можно плагином к браузеру.

    К сожалению существующие механизмы сертификации ввиду жесткой иерархии доверия уже плохо соответствуют текущим реалиям, и думаю что в итоге появится альтернатива в виде "мультиподписи" и "отзыва" доверия к одному из источников, если он был замечен в чем то нехорошем. Политика доверия "кворум" - позволяет доверять тем кому действительно доверяешь )


  1. vvm13xx
    17.08.2026 12:14

    Поставить Firefox, создать отдельный профиль для нуждающихся (в минцифровых сертификатах), выбрать профиль и загрузить те сертификаты туда. Ну что может быть проще?


  1. wmgeek
    17.08.2026 12:14

    Если у них нет намерения подписывать google.com то могли хотя бы «разделе для продвинутых пользователей» выложить сертификаты минцифры с nameContraints.


    1. outlingo Автор
      17.08.2026 12:14

      Ну вариантов много

      Cамый вероятный - в минцифре просто не знали о такой фиче. Прочли хауту, фигак-фигак и запилили. Не надо недооценивать человеческую безграмотность

      Второй вариант - решили что может потребоваться подписывать домены COM/NET закрепленные за российскими компаниям (yandex.net, vk.com и т.д.). Или вообще решили пафосно ворваться в мир УЦ - но не выгорело.

      Ну и да, "казахский вариант" (я его называю так потому что первыми это попытались провернуть в Казахстане) с государтсвенным MitM тоже нельзя сбрасывать со счетов, соглашусь.


  1. coodi
    17.08.2026 12:14

    О, я похожую штуку сделал две недели назад


    1. coodi
      17.08.2026 12:14

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