- Начальные настройки
- Как проверяется доверие на практике?
- Как установить контейнер закрытого ключа в реестр
- Корневые сертификаты эцп уц — установка корневых сертификатов на
- Настройка apache 2 для использования сертификатов
- Настройка аутентификации клиентов
- Ошибки при установке
- Подпись запроса руководителем
- Получение сертификата
- Разворачиваем собственный цс
- Сертификаты казначейства – суфд
- Создание закрытого ключа и запроса, подпись запроса владельцем сертификата
- Установка личного сертификата
- Центры сертификации: как они используются
Начальные настройки
Сперва заполним файл /root/.rnd, который используется как источник начальных случайных значений в генераторе псевдослучайных чисел OpenSSL. Суть использования этого файла описана на сайте OpenSSL. Нам надо заполнить свой файл случайными данными, как вариант — скопировав из /dev/urandom 32768 байт в файл .rnd таким образом:
Далее создадим сертификат для CA:
root@shpc:/opt/simple_CA# openssl req -newkey rsa:4096-keyform PEM -keyout ca.key -x509-days3650-outform PEM -out ca.cer
Опции для сертификата берутся из файла /etc/ssl/openssl.cnf. Сам файл довольно большой, мы не будем приводить здесь его содержимое. В реальности стоит создать свой конфигурационный файл с необходимыми опциями и блоками — и использовать его для генерации сертификатов.
На выходе получим два файла: ключ и сертификат.
Оба файла надо беречь. Если они попадут к злоумышленнику, он сможет использовать их для генерации сертификатов. Посмотреть сертификат можно при помощи этой команды (вывод обрезан для краткости):
root@shpc:/opt/simple_CA# openssl x509 -text-noout-in ca.cer
Далее на основе полученного сертификата (напомним, что это сертификат корневого CA) можно сгенерировать сертификат для сервера. Вначале генерируем закрытый ключ для сервера:
root@shpc:/opt/simple_CA# openssl genrsa -out server.key 4096
Теперь используем этот ключ для генерации запроса на выдачу сертификата (CSR):
root@shpc:/opt/simple_CA# openssl req -new-key server.key -out server.req -sha256
Отметим, что данные, которые вы вводите в поля, должны совпадать со значениями в тех полях, что указывались при создании сертификата корневого сервера. Теперь возьмём корневой сертификат CA и запрос — и сгенерируем на их основе сертификат для сервера:
root@shpc:/opt/simple_CA# openssl x509 -req-in server.req -CA ca.cer -CAkey ca.key -set_serial 100-extensions server -days1460-outform PEM -out server.cer -sha256
Должно получиться 5 файлов.
Файл server.req можно удалить — а при необходимости создать заново. Теперь надо перенастроить веб-сервер для работы с сертификатами.
Как проверяется доверие на практике?
Для каждого сертификата в соответствии с его назначением определяется хранилище в системе — туда его можно установить вручную. Например, есть хранилище доверенных сертификатов: если поместить в него сертификат, то система будет доверять ему.
В Windows сертификаты можно просмотреть через оснастку certmgr.msc:
Если поместить сертификат в хранилище «Доверенные корневые центры сертификации», то такому центру система будет доверять. А поскольку это хранилище корневых центров сертификации, система потом будет доверять и всем объектам, которые подписаны этим сертификатом.
В ОС Ubuntu Linux сертификаты хранятся в каталоге /etc/ssl/cetrs. Причём часть из них — ссылки на другой объект:
Как установить контейнер закрытого ключа в реестр
- Подключите к компьютеру носитель с сертификатом.
- Перейдите в «Пуск» → «Панель управления» → «КриптоПро CSP», откройте вкладку «Сервис» и нажмите «Скопировать».
- Нажмите «Обзор…», выберите контейнер с сертификатом, нажмите «ОК» и «Далее».
- Введите pin-код, затем нажмите «ОК».
- Оставьте имя контейнера по умолчанию или введите новое.
- В окне «Устройства» выберите «Реестр» и нажмите «ОК».
- Установите пароль для контейнера.
После успешного копирования контейнера личный сертификат нужно установить в хранилище «Личные».
Корневые сертификаты эцп уц — установка корневых сертификатов на
Настройка apache 2 для использования сертификатов
Переходим в каталог /etc/apache2:
root@shpc:/mnt# cd/etc/apache2/
Создаём каталог для хранения сертификатов:
root@shpc:/etc/apache2# mkdir ssl
Включаем модуль SSL для веб-сервера. Тестирование проводилось на ОС Ubuntu Linux, поэтому модуль достаточно просто включить:
a2enmod headers
Перезапускаем веб-сервер:
root@shpc:/etc/apache2# systemctl restart apache2
Аналогично нужно включить поддержку заголовков:
Теперь создадим конфигурационный файл для модуля SSL. Пример содержимого для него можно взять на Syslink.pl. Команды такие:
root@shpc:/mnt# cd /etc/apache2/conf-available root@shpc:/etc/apache2/conf-available# nano ssl-params.conf
Сам файл будет содержать следующие параметры (чтобы было проще работать, мы отключили заголовки Strict-Transport-Securrity, X-Frame-Options и X-Content-Type-Options):
Далее созданный конфиг надо активировать:
root@shpc:/etc/apache2/conf-available# a2enconf ssl-params
Теперь переходим в каталог /etc/apache2/sites-available:
root@shpc:/etc/apache2/conf-available# cd/etc/apache2/sites-available
И делаем на всякий случай резервные копии всех хранящихся там файлов:
root@shpc:/etc/apache2/sites-available# cp 000-default.conf 000-default.conf.bak root@shpc:/etc/apache2/sites-available# cp default-ssl.conf default-ssl.conf.bak
Теперь ещё раз проверяем подключённые модули headers и SSL:
Далее нам надо перенести созданные сертификаты (сертификат CA и сертификат сервера) в каталог /etc/ssl/certs, а ключ сертификата сервера — в каталог /etc/ssl/private:
root@shpc:/opt/simple_CA# cp ca.cer /etc/ssl/certs/ root@shpc:/opt/simple_CA# cp server.cer /etc/ssl/certs/server.crt root@shpc:/opt/simple_CA# cp server.key /etc/ssl/private/server.key
Далее откроем конфиг сайта (/etc/apache2/sites-available/000-default-ssl.conf) и добавим туда следующие опции:
SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key SSLCACertificateFile /etc/ssl/certs/ca.cer
Теперь перезагружаем веб-сервер:
root@shpc:/etc/apache2# a2ensite default-ssl root@shpc:/etc/apache2/sites-available# service apache2 restart
Проверяем доступность сайта:
Видим, что Firefox не может проверить сертификат сайта. Чтобы смог, надо импортировать цепочку сертификатов, подтверждающих сертификат сервера, в список доверенных. Создадим цепочку:
root@shpc:/opt/simple_CA# openssl crl2pkcs7 -nocrl-certfile ca.cer -certfile server.cer -out serve-and-ca-chain.p7c -outform der
У полученного файла не забываем сменить атрибуты на 555:
root@shpc:/opt/simple_CA# chmod555 serve-and-ca-chain.p7c
Теперь откроем в браузере менеджер сертификатов и импортируем полученную цепочку (кнопка Import):
Далее можно просмотреть сертификаты и настроить доверие — вдруг что-то упущено:
Когда сертификаты добавлены в список доверенных, можно снова зайти на сайт и увидеть, что соединение помечается как доверенное:
Сейчас время настроить аутентификацию для клиентов.
Настройка аутентификации клиентов
Веб-сервер Apache поддерживает аутентификацию клиента. Это значит, что мы можем выписать клиенту сертификат SSL, а сервер сможет его проверить. Если у пользователя не будет сертификата — аутентификация не пройдёт. Для активации такой возможности надо добавить в конфиг default-ssl.conf такие опции:
SSLCACertificateFile /opt/simple_CA/ca.cer SSLVerifyClient require SSLVerifyDepth 2
После этого к сайту сможет подключиться только тот пользователь, сертификат которого:
- установлен в браузере, если клиентом является браузер, — тогда сертификат будет предъявлен при подключении к серверу;
- подписан сертификатом доверенного УЦ.
Сначала сгенерируем сертификат для клиента. Первым делом создаём ключ:
root@shpc:/opt/simple_CA# openssl genrsa -out client.key 4096
Затем на основе ключа сгенерируем CSR:
root@shpc:/opt/simple_CA# openssl req -new-key client.key -out client.req
Теперь на базе запроса сгенерируем сам сертификат:
root@shpc:/opt/simple_CA# openssl req -new-key client.key -out client.req
И импортируем сертификат в формате p12:
root@shpc:/opt/simple_CA# openssl pkcs12 -export-inkey client.key -in client.cer -out client.p12
В итоге у нас должен получиться файл client.p12. Нужно поменять права на файл, иначе сертификат не импортируется:
root@shpc:/opt/simple_CA# chmod555 client.p12
Теперь можно импортировать его в браузер по аналогии с корневыми сертификатами:
После импорта должно получиться примерно так:
После этого перезапускаем веб-сервер и возвращаемся на сайт. Видим окно выбора сертификата того пользователя, которого мы импортировали в браузер:
Ошибки при установке
Довольно распространённой проблемой при установке становится зависание компьютера. Обычно это связано с установкой нелицензионного ПО, наличием ошибок или отсутствием критических обновлений. Также проблемы могут возникнуть в следующих случаях:
Для корректной работы рекомендуем использовать только лицензионное ПО. Приобрести его и получить комплексную техническую поддержку можно в компании «Астрал-М». Мы входим в число официальных дилеров компании «КриптоПро», что подтверждает информация на сайте разработчика. Обращаясь в «Астрал-М», вы получаете:
Для приобретения электронной подписи или криптопровайдера заполните форму обратной связи, чтобы наш специалист связался с вами.
Подпись запроса руководителем
Руководителю необходимо войти по сертификату в ФЗС, выбрать вкладу «Запросы на согласование», кликнуть на нужный запрос.
На следующей странице нажимаем на иконку «Согласовать».
На следующей странице внизу (пунтк 2) ставим галку напротив «Комплект на получение сертификата согласован» и нажимаем «СОГЛАСОВАТЬ И ПОДПИСАТЬ ЭП».
На следующей странице нажимаем «ПОДПИСАТЬ ЭП».
Далее подтверждаем доступ — выбираем «ДА».
Следующий шаг.
В итоге появляется такая страница.
Несмотря что пишут «личный визит в УЦ ФК не требуется», лучше позвонить в ваш УЦ и уточнить. Например, наш местный УЦ требует приносить новые формы согласий и доверенностей. Если поменяли паспорт, то визита в УЦ не избежать.
Получение сертификата
После получения письма счастья о готовности сертификата, можно заходить в личный кабинет ФЗС для его получения.
Разворачиваем собственный цс
Чтобы лучше понять все процессы, лежащие в основе PKI, рассмотрим на практике развёртывание небольшого ЦС на виртуальной машине под управлением Ubuntu 18 (без выхода в глобальную сеть). Мы не будем жёстко придерживаться правил и стандартов выдачи сертификатов — просто разберём работу с ними.
С учетом того, что. все эксперименты мы проводим в виртуальной среде (без выхода в глобальную сеть), мы можем использовать любое доменное имя — например www.simple.org. Однако надо помнить, что в глобальной сети такое имя вполне может быть зарегистрировано за каким-нибудь сайтом.
Сертификаты казначейства – суфд
Внимательно читаем, в какое хранилище устанавливать корневые сертификаты казначейства ГУЦ и УЦ ФК
Устанавливаем корневые сертификаты ГУЦ и Минкомсвязь:
Cертификат головного удостоверяющего центра (ГУЦ ГОСТ 2001) — действителен с 20.07.2021 по 17.07.2027 (серийный номер: 34 68 1e 40 cb 41 ef 33 a9 a0 b7 c8 76 92 9a 29)
Сертификат Минкомсвязи России (ГУЦ ГОСТ 2021) — действителен с 06.07.2021 по 01.07.2036 (серийный номер: 4e 6d 47 8b 26 f2 7d 65 7f 76 8e 02 5c e3 d3 93)
Для установки сертификата ГУЦ необходимо скачать и выбрать сертификат, вызвать контекстное меню нажатием правой кнопки мыши, затем выбрать команду «Установить сертификат».
Откроется окно мастера импорта сертификатов, нажать кнопку «Далее», откроется окно выбора хранилища сертификатов, выбрать опцию «Поместить все сертификаты в следующее хранилище» и нажать кнопку «Обзор», откроется окно списка доступных хранилищ сертификатов.
Выбрать хранилище «Доверенные корневые центры сертификации», нажать кнопку «Далее», откроется окно завершения работы мастера импорта сертификатов, нажать кнопку «Готово», появится сообщение, что импорт успешно выполнен, нажать кнопку «ОК».
Устанавливаем промежуточные сертификаты УЦ Федерального казначейства:
Сертификат Удостоверяющего центра Федерального казначейства 2001 (ФК ГОСТ 2001) — действителен с 04.07.2021 по 04.07.2027 (серийный номер: 36 ac d4 55 00 00 00 00 01 2f)
Сертификат Удостоверяющего центра Федерального казначейства 2021 (ФК ГОСТ 2021) — действителен с 19.11.2021 по 19.11.2033 (серийный номер: 00 b5 f1 32 d3 00 00 00 00 01 5a)
Сертификат Удостоверяющего центра Федерального казначейства 2020 (ФК ГОСТ 2021) — действителен с 05.02.2020 по 05.02.2035 (серийный номер: 62 ab 79 95 00 00 00 00 03 b6)
Сертификат Удостоверяющего центра Федерального казначейства 2021 (ФК ГОСТ 2021) — действителен с 13.04.2021 по 13.04.2036 (серийный номер: 00 cb c6 98 33 00 00 00 00 05 6e)
Для установки сертификата УЦ Федерального казначейства необходимо выбрать сертификат — вызвать контекстное меню нажатием правой кнопкой мыши, затем выбрать команду «Установить сертификат». Откроется окно мастера импорта сертификатов, нажать кнопку «Далее», откроется окно выбора хранилища сертификатов, выбрать опцию «Поместить все сертификаты в следующее хранилище» и нажать кнопку «Обзор». Откроется окно списка доступных хранилищ сертификатов.
Выбрать хранилище «Промежуточные центры сертификации», нажать кнопку «Далее», откроется окно завершения работы мастера импорта сертификатов, нажать кнопку «Готово», появится сообщение, что импорт успешно выполнен.
Создание закрытого ключа и запроса, подпись запроса владельцем сертификата
На главной странице портала заявителя ФЗС в разделе «Имеются действующие КЭП и сертификат» нажимаем кнопку «Войти по сертификату».
Выбираем сертификат который будем перевыпускать.
Как обычно КриптоПро просит пароль. Вводим пароль, нажимаем «ОК».
На вкладке «Получение сертификата» указываем Субъект РФ и орган ФК, где перевыпускаем сертификат. ОГРН организации определяется автоматически. Нажимаем «ДАЛЕЕ».
Выбираем какой именно сертификат (физического или юридического лица) будем перевыпускать. В нашем случае сертификат физического лица. Нажимаем «ВНЕСТИ СВЕДЕНИЯ».
На следующей странице можно изменить полномочия и некоторые данные, включаемые в новый сертификат.
Для клиентов казначейства не требуется полномочие «Landocs. Делопроизводство», т.к. оно используется только работниками казначейства.
В большинстве случаев используется класс защиты КС1.
После выбора полномочий и уточнения данных (если это необходимо) нажимаем «СОХРАНИТЬ И СФОРМИРОВАТЬ ЗАПРОС НА СЕРТИФИКАТ».
Подтверждаем доступ в интернет — нажимаем «Да».
Далее следует стандарное:
- выбор носителя для закрытого ключа: либо реестр, либо флешка, либо рутокен;
- генерация закрытого ключа посредством перемещения мыши или нажимания на клавиатуру;
- ввод нового пароля два раза.
Следующий шаг — внесение сведений о документах для получения сертификата.
На открывшейся странице можно отредактировать паспортные данные (в случае его смены), и прикрепить новую доверенность (если предыдущая уже неактуальна). Если все верно нажимаем «СОХРАНИТЬ».
Следующий шаг — формирование заявление на сертификат.
Заполняем в заявлении на получение сертификата название документа на основании которого обращаемся в УЦ, дата и регистрационный номер документа.
Вводим кодовое слово, должность владельца ЭП, И.О. Фамилия владельца ЭП, должность руководителя, И.О. Фамилия руководителя. Нажимаем «СОХРАНИТЬ И СФОРМИРОВАТЬ ПЕЧАТНУЮ ФОРМУ».
В следующем окне ставим галку напротив «Получать сведения об изменениях статуса запроса», вводим e-mail куда будут приходить извещения, сохраняем адрес и нажимаем «ПОДПИСАТЬ СВЕДЕНИЯ ЭП И ПОДПАТЬ ЗАПРОС».
Подписываем запрос ЭП.
Подтверждаем доступ.
Выбираем сертификат. Нажимаем «ПОДПИСАТЬ ЭП».
Копируем ссылку и отправляем ее руководителю на подписание запроса.
В результате мы видим такую форму.
Установка личного сертификата
Для того чтобы установить сертификат с помощью «КриптоПро CSP», выполните следующий алгоритм:
Обратите внимание, что при установке система запоминает последний контейнер, с которого была проведена операция. Например, если вы установили личный сертификат из реестра вашего компьютера, а потом повторили процедуру с флешки, то при отсутствии последней система не сможет найти контейнер.
Центры сертификации: как они используются
Задача центра сертификации — подтверждать подлинность ключей шифрования с помощью сертификатов электронной подписи. Логику работы ЦС, как правило, можно описать тезисом «никто не доверяет друг другу, но все доверяют ЦС».
Допустим, условная сущность Аlice имеет сертификат, подписанный ЦС Comp, а сущность Bob пытается проверить подлинность этого сертификата. Проверка будет успешной, если Bob и Alice доверяют одному и тому же ЦС. Для решения такой проблемы в ОС Alice и ОС Bob установлено множество сертификатов различных ЦС.