ПГК · Практикум МДК
Практическое заданиеСиСА · Демо 2026

Центр сертификации и HTTPS

Сохраняется в этом браузере
На этой странице

Задание

2. Выполните настройку центра сертификации на базе HQ-SRV:

  • Необходимо использовать отечественные алгоритмы шифрования
  • Сертификаты выдаются на 30дней
  • Обеспечьте доверие сертификату для HQ-CLI
  • Выдайте сертификаты веб серверам
  • Перенастройте ранее настроенный реверсивный прокси nginx на протокол https
  • При обращении к веб серверам https://web.au-team.irpo и https://docker.au-team.irpo у браузера клиента не должно возникать предупреждений.

Реализация

Первоначальная настройка

GOST Engine — модуль для OpenSSL, реализующий поддержку российских криптографических алгоритмов в соответствии с ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 и другими стандартами.

Пакет openssl-gost-engine, по умолчанию предустановлен в РЕД ОС.

Виртуальная машина HQ-SRV

Устанавливаем необходимые пакеты если они не установлены.

# dnf install openssl-gost-engine

Включаем поддержку алгоритмов шифрования ГОСТ:

# openssl-switch-config gost

Проверяем используемую в системе политику шифрования:

# update-crypto-policies --show

Применяем модуль политики, определяющий используемые методы шифрования ГОСТ:

# update-crypto-policies --set LEGACY:GOST

Проверяем, видит ли OpenSSL алгоритмы ГОСТ:

# openssl ciphers | tr ":" "\n" | grep GOST

3-2_001.png

Создание корневого УЦ (Удостоверяющий Центр)

Создаем директорию са в домашнем каталоге пользователя sshuser

$ mkdir ca && cd ca

Создаём закрытый ключ ca.key с алгоритмом ГОСТ-2012:

$ openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

Создаём сертификат ca.crt на 30 дней:

$ openssl req -new -x509 -md_gost12_256 -days 30 -key ca.key -out ca.crt

В результате сформируются закрытый ключ са.key и сам сертификат са.crt

Проверяем

# ls -l /ca

3-2_002.png

Проверка сертификата ca.crt

$ openssl x509 -noout -text -in ca.crt

3-2_003.png

Создание ключей для web.au-team.irpo и docker.au-team.irpo

web.au-team.irpo

Создание закрытого ключа для ```web.au-team.irpo``

$ openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out web.key

Создаём запросc на подпись УЦ

$ openssl req -new  -md_gost12_256 -key web.key -out web.csr

Подписываем запрос в УЦ

$ openssl x509 -req -in web.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out web.cer -days 30

3-2_004.png

docker.au-team.irpo

Создание закрытого ключа для docker.au-team.irpo

$ openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out docker.key

Создаём запросc на подпись УЦ

$ openssl req -new  -md_gost12_256 -key docker.key -out docker.csr

Подписываем запрос в УЦ

$ openssl x509 -req -in docker.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out docker.cer -days 30

3-2_005.png

Получаем

3-2_006.png

Передаем web.cer web.key docker.cer docker.key на ISP

scp web.key web.cer docker.key docker.cer user@172.16.1.1:/home/user

Виртуальная машина ISP

Устанавливаем необходимые пакеты если они не установлены

# dnf install openssl-gost-engine

Включаем поддержку алгоритмов шифрования ГОСТ:

# openssl-switch-config gost

Проверяем используемую в системе политику шифрования:

# update-crypto-policies --show

Применяем модуль политики, определяющий используемые методы шифрования ГОСТ:

# update-crypto-policies --set LEGACY:GOST

Проверяем, видит ли OpenSSL алгоритмы ГОСТ:

# openssl ciphers | tr ":" "\n" | grep GOST

3-2_007.png

Создаём каталог /etc/nginx/ssl и копируем туда файлы web.cer web.key docker.cer docker.key:

# mkdir /etc/nginx/ssl

# cp /home/user/web.cer  /etc/nginx/ssl/

# cp /home/user/web.key  /etc/nginx/ssl/

# cp /home/user/docker.cer  /etc/nginx/ssl/

# cp /home/user/docker.key  /etc/nginx/ssl/

Устанавливаем права на web.key docker.key

# chmod 777 /etc/nginx/ssl/web.key

# chmod 777 /etc/nginx/ssl/docker.key

Правим файл конфигурации /etc/nginx/nginx.conf

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

server {
    listen 443 ssl;
    server_name web.au-team.irpo;

        ssl_certificate /etc/nginx/ssl/web.cer;
        ssl_certificate_key /etc/nginx/ssl/web.key;
        ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

    location / {
        proxy_pass http://172.16.1.2:8080;
        auth_basic "Restricted area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

server {
    listen 443 ssl;
    server_name docker.au-team.irpo;

        ssl_certificate /etc/nginx/ssl/web.cer;
        ssl_certificate_key /etc/nginx/ssl/web.key;
        ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

    location / {
        proxy_pass http://172.16.2.2:8080;
    }
}

Проверяем наличие ошибок:

# nginx -t

Перезапускаем службу nginx:

# systemctl restart nginx

Виртуальная машина HQ-SRV

Передаём на HQ-CLI корневой сертификат ca.crt УЦ:

$ scp ca.crt user@192.168.200.3:/home/user

Виртуальная машина HQ-CLI

Устанавливаем необходимые пакеты если они не установлены

# dnf install openssl-gost-engine

Включаем поддержку алгоритмов шифрования ГОСТ:

# openssl-switch-config gost

Проверяем используемую в системе политику шифрования:

# update-crypto-policies --show

Применяем модуль политики, определяющий используемые методы шифрования ГОСТ:

# update-crypto-policies --set LEGACY:GOST

Проверяем, видит ли OpenSSL алгоритмы ГОСТ:

# openssl ciphers | tr ":" "\n" | grep GOST

Копируем корневой сертификат в /etc/pki/ca-trust/source/anchors/

# cp /home/user/ca.crt  /etc/pki/ca-trust/source/anchors/

Обновляем общесистемный список доверенных CA

# update-ca-trust

Выводим список доверенных сертификатов

# trust list | grep –i “AU-Team”

3-2_008.png

Установка КриптоПро CSP

Виртуальная машина HQ-CLI

На HQ-CLI переходим на сайт https://cryptopro.ru/products/csp

Регистрируемся и скачиваем КриптоПро CSP с 90-дневной лицензией

3-2_009.png

3-2_009.png

Переходим в директорию Загрузки:

# cd /home/user/Загрузки

Распаковываем архив:

# tar –xzf linux-amd64.tgz

Переходим в директорию с распакованным архивом:

# cd linux-amd64

Запускаем скрипт установки:

# ./install_gui.sh

3-2_011.png

Жмем Далее

3-2_012.png

Выбираем необходимые пакеты для установки:

3-2_013.png

Жмем Установить

3-2_013.png

Жмем ОК

3-2_015.png

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

3-2_016.png

Жмем Выход

3-2_017.png

Проверяем доступность web.au-team.irpo и docker.au-team.irpo по https

Если браузеры были запущены во время установки Коревого сертификата и КриптоПро CSP перезапускаем браузер.

3-2_018.png

3-2_018.png

3-2_020.png

3-2_020.png

3-2_022.png

Поиск по мануалу

Введите текст для поиска.