15
1月
2024
Переход на российские корневые сертификаты TLS
17:52

Переход на российские корневые сертификаты TLS

15 1月 2024 17:52

На этой странице собраны ссылки на все основные корневые сертификаты РФ, приведена инструкция по их установке.

Что такое "Российские корневые сертификаты" TLS?

TLS - протокол для защиты от чтения и модификации данных, при подключении к веб-сайтам по протоколу HTTPS. (При https используется порт 443, в отличие от http 80). Для защиты, соединение со стороны сервера подписывается сертификатом сайта и шифруется. Со стороны клиента сертификат проверяется и соединение расшифровывается. Если сертификат не доверенный, в браузере выскакивает сообщение об ошибке проверки безопасности соединения, а если доверенный - в адресной строке иконка, показывается что соединение защищено. Сертификаты российских сайтов в теории должны шифроваться с использованием российских же сертификатов. Так реализуется технологический суверенитет - российские сайты не должны зависеть от иностранных удостоверяющих центров, выдающих сертификаты TLS.

Для создания независимой от западного мира системы PKI для сертификатов сайтов созданы два корневых сертификата:

  • Russian Trusted Root CA
  • Russian Trusted Sub CA

Их можно загрузить со страницы https://gosuslugi.ru/crt.

Как установить Российские сертификаты в Linux?

  1. для утилит wget, curl и apt, их нужно установить их в операционную систему
  2. для просмотра веб нужно установить их в браузеры Mozilla FireFox и Chrome / Chromium

При установке сертификатов в ОС, где находится файл конфигурации CA?

Файлы конфигурации сертификатов для операционной системы (для утилит curl и wget):

/usr/lib/ssl/openssl.cnf
/etc/ca-certificates.conf

Как установить корневые сертификаты (CA) в операционную систему?

Практика показала, что настройка коревых сертификатов ОС в Linux не влияет на открытие веб сайтов - лишь на поведение консольных утилит wget и curl при работе по протоколу HTTPS.
Замечание: веб браузеры используют сертификаты иным образом - сертификаты регистрируются в настройках. Для них см. раздел "Как установить корневые сертификаты (CA) в веб браузеры".

Для установки сертификатов в ОС Linux нужно:
0) скачать файлы корневых сертификатов CA с расширением CRT.
1) скопировать файлы корневых сертификатов *.crt в дочернюю папку
/usr/share/ca-certificates, например, /usr/share/ca-certificates/russian_trusted и добавить строки в файл конфигурации /etc/ca-certificates.conf.
2) выполнить команду sudo dpkg-reconfigure ca-certificates и подтвердить добавление новых сертификатов.
3) проверка.

0) скачивание сертификатов со страницы Госуслуг https://gosuslugi.ru/crt - файлы в разделе "Альтернативный способ — установка корневого сертификата" - Сертификаты для Linux.

Нажмите для увеличения:

Загрузка корневого и выпускающего сертификатов с сайта Госуслуг

1) копирование сертификатов

sudo mkdir /usr/share/ca-certificates/russian_trusted    
sudo cp ~/Загрузки/russian_trusted*.crt /usr/share/ca-certificates/russian_trusted 
cd /usr/share/ca-certificates/russian_trusted 
ls -l

Должно лежать 2 файла. Если 4, лишние копии удаляю:
sudo rm "russian_trusted_root_ca_pem(1).crt"
sudo rm "russian_trusted_sub_ca_pem(1).crt"

2) установка корневых сертификатов в Linux:

2.1) редактируем файл /etc/ca-certificates.conf - добавляем наши 2 сертификата

Путь к сертификатам относительный. Ранее мы создали папку /usr/share/ca-certificates/russian_trusted, значит путь в файле конфигурации будет russian_trusted/имя_сертификата

sudo nano /etc/ca-certificates.conf

Добавляем строки:

russian_trusted/russian_trusted_root_ca_pem.crt
russian_trusted/russian_trusted_sub_ca_pem.crt

conf

Сохраняем и выходим: Ctrl+O и Ctrl+X.

2.2) Выполняем

sudo dpkg-reconfigure ca-certificates

update_certs1
Нажал OK.

"Доверять новым сертификатам удостоверяющих центров?"
update_certs2
Да
update_certs3
"Этот пакет устанавливает сертификаты удостоверяющих центров (CA) ..."
Нажал OK.
update_certs4
В окне со списком сертификатов пролистал его до конца вниз и нашел наше 2 сертификата - они выделены звездочками.
Нажал ОК.
Программа выполнила добавление российских сертификатов в систему.

3) Проверка:
Проверим открытие сайта Росреестра по протоколу https из командной строки.

cd ~
wget https://rosreestr.ru

Как установить корневые сертификаты (CA) в веб браузеры

1) Установка сертификата CA в Mozilla Firefox

Firefox → перейдите в «Настройки» → в поиске введите «Сертификат» → выберите «Просмотр сертификатов…»
cert_firefox1

cert_firefox2

Нажал кнопку "Импортировать...".
Выбрал из "Загрузок" файл russian_trusted_root_ca_pem.crt и нажал в проводнике кнопку Открыть.

cert_firefox4
Доверять при идентификации веб сайтов..

Повторил импорт для второго файла russian_trusted_sub_ca_pem.crt (также нажал кнопку Открыть)

  • Импортировать...
  • Открыть

cert_firefox5
Закрыл форму "OK.

1) Установка сертификата CA в Chromium

В Chromium установка производится таким же образом: Настройки - поиск ключевого слова "Сертификат"
chromium1
В разделе Безопасность прокручиваем окно вниз до раздела "Настроить сертификаты"
chromium2
В окне выбрал закладку "Центры сертификации".
chromium3
Нажал Импорт
В окне поставил галочку против
"Доверять этому сертификату при идентификации сайтов.
cert_firefox4
Если сертификат не был установлен ранее, он будет добавлен в браузер.

Проверка - перейти на сайт https://rosreestr.ru или https://rosreestr.gov.ru/.

Полезная информация

Где ещё могут лежать корневые сертификаты в Linux

FireFox при установке добавляет свои сертификаты в папку:
/usr/share/ca-certificates/mozilla

Установка пакета firefox изменяет файл /etc/ca-certificates.conf.
В котором # = символ для комментирования, ! - отключить строку.

Как просмотреть содержимое сертификата в Linux?

1) Графический интерфейс пользователя: с помощью двойного щелчка мыши по файлу в проводнике, или выполнением утилиты gcr-viewer.

gcr-viewer /usr/local/share/ca-certificates/russian_trusted/russian_trusted_sub_ca_pem.crt

3) Командная строка: (в папке, где лежат сертификат, например,

  • с помощью команды openssl x509 :

Чтение одного сертификата из файла certificate.pem с помощью команды openssl x509, с фильтром поля CN - имя сертификата:

sudo openssl x509 -in certificate.pem -noout -subject | grep -iF "CN ="

Источник

Чтение одного сертификата с помощью утилиты keytool

keytool -printcert -file certificate.pem

Например, в Green Linux команда выведет информацию о сертификате в консоль:

keytool -printcert -file /usr/local/share/ca-certificates/russian_trusted/russian_trusted_root_ca_pem.crt | less

Чтение в цикле всех сертификатов из файла комплекта сертификатов ca-certificates.crt

while openssl x509 -noout -text; do :; done < /etc/ssl/certs/ca-certificates.crt

Чтение имён сертификатов CN (от Common Name) в цикле:

while openssl x509 -noout -text; do :; done < /etc/ssl/certs/ca-certificates.crt | grep "CN ="

Например:
Subject: C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA

Чтение имен получателей (OU) сертификатов из файла содержащего несколько сертификатов с именем GlobalSign

while openssl x509 -noout -text; do :; done < /etc/ssl/certs/ca-certificates.crt | grep "CN =" | grep -iF globalsign

Справка:

man openssl-x509

Создание резервной копии файла комплекта корневых CA-сертификатов (делать не обязательно, т.к. файл создается каждый раз при выполнении dpkg-reconfigure ca-certificates):

sudo cp /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt.bak

Как удалить корневой сертификат из Linux

Это действие не удалит файл из браузера - см. информацию по Mozilla FireFox и Chromium ниже.

Нужно исправить файл /etc/ca-certificates.conf

sudo cp /etc/ca-certificates.conf /etc/ca-certificates.conf.bak
sudo nano /etc/ca-certificates.conf

Например, если хотим отключить все сертификаты, ставим восклицательные знаки (!) в начало всех строчек.

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

sudo sed -i 's/^mozilla/!mozilla/g' /etc/ca-certificates.conf

Для массового включения корневых сертификатов mozilla:

sudo sed -i 's/^!mozilla/mozilla/g' /etc/ca-certificates.conf

После чего выполнить:

sudo dpkg-reconfigure ca-certificates

Как удалить корневой сертификат в Linux из браузера Mozilla FireFox или Chromium

Настройки - поиск по слову "Сертификат" - затем "Корневые сертификаты" - выбор и удаление.

Как переустановить пакет коревые сертификаты ОС Linux с настройками "по умолчанию"?

sudo apt install --reinstall ca-certificates

Данная команда удалит из папки /etc/ssl/certs/ посторонние сертификаты и восстановит символьные ссылки и базу данных сертификатов "по умолчанию".

Как в Mozilla FireFox создать новый профиль для экспериментов?

filefox -P

В каждом профиле FireFox можно настроить свой набор сертификатов сайтов. Например, при отсутствии российского сертификата в профиле, названном "temp", будет ошибка
error_rosreestr
А в другом экземпляре FireFox с другим профилем, в который установлены сертификаты, ошибки нет.

Официальный портал сертификатов TLS для российских сайтов

Вся информация по установке и настройке:
https://www.gosuslugi.ru/crt

Какие веб сайты РФ перешли на российские корневые сертификаты (CA)

Банк "Сбер" (ex. "Сбербанк") предупреждает клиентов о переходе на российские сертификаты:

Банк ВТБ предлагает клиентам перейти на российские сертификаты:

Сайт Росреестра выводит предупреждение при открытии домашней веб страницы.

Крупнейшие веб-сайты рунета, перешедшие на российскую криптографию:

  1. Сбербанк www.sberbank.ru - сертификат Russian Trusted Sub CA
  2. Казначейство РФ www.roskazna.ru - сертификат Russian Trusted Sub CA
  3. Росреестр rosreestr.gov.ru/ - сертификат Russian Trusted Sub CA

Госуслуги www.gosuslugi.ru на начало 2024 года используют сертификат Globalsign.

Какие основные сертификаты используются сайтами РФ?

Корневые сертификаты, рекомендуемые к установке сайтом Госуслуг (gosuslugi.ru/crt)

№ п/п Название сертификата Файл CER Действует до
1. Основной сертификат Russian Trusted Root CA russian_trusted_root_ca.cer 27.02.2032
2. Выпускающий сертификат Russian Trusted Sub CA russian_trusted_sub_ca.cer 06.03.2027

Корневые сертификаты, рекомендуемые к установке сайтом Федерального казначейства (инструкция)

№ п/п Название сертификата Файл CER Действует до
3. Сертификат Минкомсвязи России (Головного удостоверяющего центра) Идентификатор ключа: 8b 98 3b 89 18 51 e8 ef 9c 02 78 b8 ea c8 d4 20 b2 55 c9 5d e-trust 17.07.2027
4, Сертификат Минкомсвязи России (Головного удостоверяющего центра) ГОСТ Р 34.10-2012 guts_2012 guts_2012.cer 01.07.2036
5, Сертификат Минкомсвязи России (Головного удостоверяющего центра) 2022 guts_2022 Kornevoy-sertifikat-GUTS-2022.CER 08.01.2040

Описание:
1) Russian Trusted Root CA - основной сертификат РФ, от которого порожден Russian Trusted Sub CA. Используется в цепочке доверия большинства сайтов.
2) Russian Trusted Sub CA - выпускающий сертификат, которым "подписывают" сайты: Сбер, Росказна и Росреестр. Наиболее распространен на веб-сайтах в российском Интернете. Официальный портал не приводит иных сертификатов, кроме этих двух. Видимо, их достаточно для работы с сайтами "Госуслуги" и банков.
3) Сертификат Минкомсвязи России (Головного удостоверяющего центра) с ИД 8b 98 3b 89 18 51 e8 ef 9c 02 78 b8 ea c8 d4 20 b2 55 c9 5d - Доверенный корневой центр сертификации. Главный корневой сертификат для любых удостоверяющих центров (центрам сертификации - ЦС), Сертификаты других ЦС являют промежуточными.
4) _Guts2012 - сертификат Головного удостоверяющего центра Минкомсвязи России. Используется сайтами Росказна и WEB-приложением СУФД (бюджетное финансирование).
5) _Guts2022 - сертификат Головного удостоверяющего центра Минкомсвязи России. Используется сайтом Росказна WEB-приложением СУФД (бюджетное финансирование). Информация о сертификатах guts доступна на сайте Росказны в PDF,

Как установить корневые сертификаты (CA) в Windows?

В Windows - "пощелкать" мышью на скачанных сертификатах как написано в статье на сайте www.gosuslugi.ru/crt.

Либо воспользоваться CMD-файлом, который установит все сертификаты из текущего каталога:

@echo off
for /d %%G in (\*.cer) DO call :s_subroutine %%G
goto :EOF
:s_subroutine
CertMgr.exe /c /add %1 /s root
echo:
goto :EOF

См. описание ключей запуска CertMgr на сайте Microsoft.

Файл certmgr.exe входит в состав Windows SDK, который доступен на сайте Microsoft. Ссылки на универсальный установщик Windows SDK для Windows 7, 8.1, 10, 11 приведены в следующей статье.

Как скачать все сертификаты веб сайта по HTTPS?

Загрузка сертификатов с сайта rosreestr.ru в файл:

echo -n | openssl s_client -showcerts -connect rosreestr.ru:443 2>/dev/null  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > rosreestr_bundle.crt

Просмотр заголовков сертификатов из файла:

while openssl x509 -noout -text; do :; done < ~/rosreestr_bundle.crt | grep "CN ="

То же самое для сайта Госуслуг:

echo -n | openssl s_client -showcerts -connect gosuslugi.ru:443 2>/dev/null  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > gu_bundle.crt

while openssl x509 -noout -text; do :; done < ~/gu_bundle.crt | grep "CN ="

Гарантирует ли "замочек" в строке подключения подлинность сайта?

Следует отметить, что сертификаты лишь защищают подключение SS:/TLS. Наличие значка "замок" не гарантирует подлинность сайта (она определяется dns и регистраторами имён - например, nic.ru или reg.ru, другие регистраторы). Рекомендую всегда смотреть сертификат, находящийся под "замочком" и проверить тщательно имя домена в сертификате, сравнив его с доменом, который виден в адресной строке. Во избежание атак "человек посередине" (MitM). Но "Антивирус Касперского" в Windows во включенном состоянии заменяет сертификат сайта на порту 443 - т.к. он расшифровывает трафик, проверяет его и затем зашифровывает его своим сертификатом. Это поведение Kaspersky Antivirus является нормальным.

Дополнение от 17.01.2024: установка Яндекс браузера для работы с веб сайтами

Вместо установки корневых сертификатов в браузеры FireFox и Mozilla, можно установить веб браузер Яндекс, который имеет все необходимые сертификаты.

1) Создание в папке /etc/apt/sources.list.d файла для репозитория браузера Яндекс:

cd /etc/apt/sources.list.d
sudo nano yandex-browser.list

В файл list репозитория yandex-browser.list: добавил следующую строку:

deb [arch=amd64] https://repo.yandex.ru/yandex-browser/deb stable main

Сохранил Ctrl+O, Ctrl+X.

2) Импорт подписи репозитория Яндекс браузера

curl -fsSL https://repo.yandex.ru/yandex-browser/YANDEX-BROWSER-KEY.GPG | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/yandex-browser.gpg > /dev/null

Проверка:

file /etc/apt/trusted.gpg.d/yandex-browser.gpg

Ответ: /etc/apt/trusted.gpg.d/yandex-browser.gpg: OpenPGP Public Key Version 4, Created Tue May 16 16:15:58 2023, RSA (Encrypt or Sign, 4096 bits); User ID; Signature; OpenPGP Certificate
3) Проверка свободного места, обновление кеша apt и установка пакета yandex-browser-stable:

df -h

Необходимо свободное пространство около 1 Гбайт (300 МБ на кеш, 200 МБ на загрузку и 300 МБ на установку ПО и 200 МБ на профиль).

sudo apt-get update
sudo apt install yandex-browser-stable

Яндекс браузер появится в меню Пуск - Интернет - Yandex Browser.

Источник по установке Яндекс Браузера: https://browser.yandex.ru/help/about/install.html#browser-install.



相关出版物