Содержание

Skip to end of metadata
Go to start of metadata

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

Инструмент XCA входит в стандартный дистрибутив Astra Linux.
Установку инструмента можно выполнить либо из графического менеджера пакетов, либо из командной строки командой

sudo apt-get install xca

После установки инструмент появляется в меню «Пуск» в закладке «Утилиты».

Для начала работы запустите инструмент.

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

Первое, что нужно сделать после запуска инструмента — создать новую базу данных.

Выберите в меню пункт «Файл» - «Новая база данных»,  укажите название и размещение базы данных, нажмите «Сохранить».

Перед созданием базы данных будет запрошен ввод пароля к базе данных. Из соображений безопасности данных рекомендуется указать пароль,
но можно просто нажать «Да», при этом база будет создана без пароля.

Подготовка шаблонов

Перед созданием сертификатов для упрощения дальнейшей работы рекомендуется заполнить и сохранить типовые повторяющиеся значения полей,
которые будут применяться в дальнейшем при создании сертификатов. Для этой цели в XCA предусмотрен механизм шаблонов. Особенно использование
шаблонов рекомендуется для упрощения повторяющихся операций выпуска клиентских сертификатов.

Для работы с шаблонами выберите закладку
«Шаблоны».

Для создания своего нового шаблона нажмите кнопку
«Новый шаблон»,
и выберите типовой шаблон из появившегося списка.

Новый шаблон будет создан как копия выбранного предустановленного шаблона. В инструменте предусмотрено три предустановленных шаблона:

  • CA — предустановленный шаблон сертификата удостоверяющего центра;

  • HTTPS_client - предустановленный шаблон сертификата клиента;

  • HTTPS_server - предустановленный шаблон сертификата сервера;

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

Во всех шаблонах в закладке «Владелец» следует заполнить информационные поля:

  • Внутреннее имя — любое имя

  • countryName — двухбуквенный код страны (например, RU)

  • stateOrProvinceName - двухбуквенный код региона (например, MO)

  • localityName — название города (например, MOSCOW)

  • organizationName — название организации (например, ASTRA)

  • organizationalUnitName — название структурной единицы внутри организации (например, OS)

  • commonName — общедоступное имя

  • emailAddress — адрес электронной почты

При заполнении информационных полей шаблона не рекомендуется использовать кириллицу.
Все поля являются необязательными, однако, в шаблоне, как минимум, обязательно должно быть заполнено либо поле «Внутреннее имя», либо поле «commonName».

Дополнительно нужно внести следующие изменения в шаблоны:

Изменения в предустановленном шаблоне CA

В закладке «Расширения» проверьте правильность данных:

  • тип сертификата «Центр сертификации»,

  • наличие отметки «Critical»

  • наличие отметки «Subject Key Identifier»

При необходимости, уточните даты и срок действия сертификата.

Изменения в предустановленном шаблоне сервера

В закладке «Расширения» проверьте правильность данных:

  • тип сертификата «Конечный пользователь»,

  • наличие отметки «Critical»

  • наличие отметки «Subject Key Identifier»

При необходимости, уточните даты и срок действия сертификата.

В закладке «Область применения ключа» в левом списке:

  • должно быть выбрано значение «Digital Signature»

  • должно быть выбрано значение «Key Encipherment»

  • нужно снять отметку со значения «Non Repudiation»

и в правом списке выбрать «TLS Web Server Authentication».

В закладке «Netscape» убрать отметку «Netscape SSL Server».

Изменения в предустановленном шаблоне клиента

В закладке «Расширения» проверьте правильность данных:

  • тип сертификата «Конечный пользователь»,

  • наличие отметки «Critical»

  • наличие отметки «Subject Key Identifier»

При необходимости, уточните даты и срок действия сертификата.

В закладке «Область применения ключа» в левом списке:

  • убирать отметку «Data Encipherment»

  • убирать отметку «Key Encipherment»

  • выбирать «Key Agreement»

В правом списке дополнительно выбирать «TLS Web Client Authentication».

В закладке «Netscape» убрать отметку «Netscape SSL Client and S/MIME»

После заполнения шаблона шаблон нужно сохранить, нажав кнопку «Да».

Типовая схема применения инструмента XCA

Типовая упрощенная схема применения инструмента XCA включает в себя следующие шаги:

  1. Создание корневого сертификата удостоверяющего центра

  2. Создание закрытого ключа и сертификата открытого ключа сервера.

  3. Экспорт для использования сервером:

    1. Сертификата удостоверяющего центра

    2. Закрытого ключа сервера

    3. Сертификата открытого ключа сервера

    4. Файла параметров Диффи-Хеллмана

    5. Файла параметров дополнительной аутентификации TLS

  4. Создание закрытого ключа и сертификата открытого ключа клиента

  5. .Экспорт для использования клиентом:

    1. Сертификата удостоверяющего центра

    2. Закрытого ключа клиента

    3. Сертификата открытого ключа клиента

    4. Файла параметров дополнительной аутентификации TLS

  6. Повторная генерация сертификатов по мере истечения их срока действия

Шаги 4 и 5 выполняются для каждого нового подключаемого клиента.

Шаг 6 повторяется для удостоверяющего центра, сервера и клиентов по мере истечения срока действия их сертификатов.

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

Создание корневого сертификата удостоверяющего центра

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

Для создания корневого сертификата в графическом интерфейсе выберите закладку «Сертификаты», далее — нажмите кнопку «Новый сертификат».

В открывшейся форме будет автоматически выбран пункт «Создать самоподписанный сертификат».

В поле «Шаблон для нового сертификата» будет автоматически выбран предустановленный шаблон «[default] CA».

Если вы ранее создали свои шаблоны, выберите нужный вам шаблон, и нажмите кнопку «Применить всё».

Далее, перейдите в закладку «Владелец».

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

Заполните поле «Внутреннее имя», и, в обязательном порядке, поле «commonName».

Для корневого сертификата в обоих случаях можно рекомендовать имя «rootCA».

Далее, нажмите кнопку «Создать новый ключ».

Будет предложено создать новый закрытый ключ с именем, совпадающим со значением в поле «Внутреннее имя». Проверьте параметры ключа: они должны иметь следующие значения:

  • «Тип Ключа» RSA

  • «Длинна ключа» 2048.

Убедившись в правильности параметров, нажмите кнопку |«Создать».

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

Перейдите в закладку «Расширения».

Убедитесь, что

  • выбран «Тип» «Центр сертификации»,

  • отмечены пункты «Critical» и «Subject Key Identifier».

  • Установите нужные вам «Период действия» и «Срок действия» сертификата.

Перейдите в закладку
«Область применения ключа».

Убедитесь, что в списке применения выбраны пункты

  • «Certificate Sign» и

  • «CRL Sign».

Перейдите в закладку
«Netscape».

Убедитесь, что в списке применения выбраны пункты

  • «SSL CA»

  • «S/MIME CA»

  • «Object signing CA».

После проверок нажмите кнопку
«Да»
для создания сертификата.

Сообщение об успехе закройте кнопкой «Да».

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

Создание сертификата сервера

Создание сертификата сервера во многом похоже на создание корневого сертификата. Для создания сертификата сервера перейдите в закладку
«Сертификаты»,
нажмите кнопку
«Новый сертификат».

В открывшейся форме в закладке
«Источник»
вместо автоматически выбранного пункта «Создать самоподписанный сертификат» выберите пункт
«Use this certificate for signing»,
и, в соответствующем списке, выберите ваш корневой сертификат.

В списке применяемых шаблонов выберите
«[default] Server» (или соответствующий собственный шаблон),
и нажмите кнопку
«Применить всё».

Перейдите в закладку
«Владелец»,
и заполните соответствующие поля.

Обязательно укажите «commonName».

Создайте новый ключ, нажав кнопку
«Создать новый ключ»
(параметры ключа аналогичны прошлому шагу).

В закладке
«Расширения»
проверьте

  • тип сертификата «Конечный пользователь»,

  • наличие отметки «Critical»

  • наличие отметки «Subject Key Identifier»,

  • и, при необходимости, уточните даты и срок действия сертификата.

В закладке
«Область применения ключа»
в левом списке должно быть выбрано

  • «Digital Signature» и

  • «Key Encipherment».

В правом списке должно быть выбрано

  • «TLS Web Server Authentication».

Нажмите «Да» для создания сертификата.

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

Создание сертификата клиента

Аналогично с предыдущими сертификатами, создаются и сертификаты клиентов.

При создании клиентского сертификата выбираем шаблон «[default] client», или свой аналогичный. После выбора шаблона не забываем нажать кнопку
«Применить всё».

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

В закладке
«Расширения»
проверьте правильность значений:

  • тип сертификата «Конечный пользователь»

  • наличие отметки «Critical»

  • наличие отметки «Subject Key Identifier»

  • при необходимости, уточните даты и срок действия сертификата.

В закладке
«Область применения ключа»
в левом списке должно быть выбрано

  • «Key Agreement».

В правом списке должно быть выбрано

  • «TLS Web Client Authentication».

Нажимаем «Да» для создания сертификата, видим, что новый сертификат появился в списке сертификатов.

Типовая схема экспорта сертификатов и ключей

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

Сводный список распределения файлов:

Для сервера:

  • корневой сертификат удостоверяющего центра

  • сертификат сервера

  • закрытый ключ сервера

  • файл параметров Диффи-Хеллмана

  • файл дополнительной аутентификации протокола TLS

Для каждого клиента:

  • корневой сертификат удостоверяющего центра

  • сертификат клиента

  • закрытый ключ клиента

  • файл дополнительной аутентификации протокола TLS

Экспорт корневого сертификата удостоверяющего центра

Для работы серверов и клиентов нужен только сертификат удостоверяющего центра.

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

Для экспорта корневого сертификата перейдите в закладку
«Сертификаты»,
выберите в списке корневой сертификат, и нажмите кнопку
«Экспорт».

В открывшейся форме укажите место сохранения экспортируемого сертификата, выберите формат экспорта
«PEM (*.crt)»,
и нажмите кнопку «Да».

Экспорт сертификата и закрытого ключа сервера

Для работы сервера нужны:

  • сертификат удостоверяющего центра,

  • сертификат сервера

  • закрытый ключ сервер

Дополнительно, для работы сервера еще требуется:

  • файл с параметрами Диффи-Хеллмана, способ создания такого файла с помощью XCA описан ниже.

  • файл дополнительной аутентификации протокола TLS. Способ создания такого файла в XCA не предусмотрен.
    Этот файл должен быть создан отдельно средствами OpenVPN при помощи команды
    openvpn --genkey --secret <имя_файла>

Закрытый ключ сервера должен находиться на сервере, и не должен передаваться клиентам.

Для экспорта сертификата сервера перейдите в закладку «Сертификаты», выберите в списке нужный сертификат, и нажмите кнопку 
«Экспорт».

В открывшейся форме укажите место сохранения экспортируемого сертификата, выберите формат экспорта «PEM (*.crt)», и нажмите кнопку «Да».

Для экспорта закрытого ключа сервера перейдите в закладку «Закрытые ключи», выберите в списке нужный ключ, нажмите кнопку
«Экспорт», выберите формат экспорта «PEM private (*.crt)», и нажмите кнопку «Да».

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

Экспорт сертификата и закрытого ключа клиента

Для работы клиента нужны:

  • сертификат удостоверяющего центра,

  • сертификат клиента

  • закрытый ключ клиента

Для экспорта сертификата клиента перейдите в закладку
«Сертификаты»,
выберите в списке нужный сертификат, и нажмите кнопку
«Экспорт».
В открывшейся форме укажите место сохранения экспортируемого сертификата, выберите формат экспорта «PEM (*.crt)», и нажмите кнопку «Да».

Для экспорта закрытого ключа клиента перейдите в закладку
«Закрытые ключи»,
выберите в списке нужный ключ, нажмите кнопку
«Экспорт»,
выберите формат экспорта «PEM private (*.crt)», и нажмите кнопку «Да».

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

Создание файла с параметрами Диффи-Хеллмана

Помимо сертификатов, для работы сервера нужен файл с параметрами Диффи-Хеллмана.

Для создания этого файла выберите в меню пункт «Extra», и, далее «Создать DH параметр».

В открывшейся форме укажите значение 2048 (2048 бит), и нажмите кнопку «Да».

Генерация занимает довольно много времени, в течение которого программа может показаться «зависшей». Об активности программы свидетельствует индикатор в правом нижнем углу окна программы.

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

Отзыв сертификатов. Списки отзыва сертификатов.

Для отзыва сертификата перейдите в закладку
«Сертификаты»,
найдите в списке отзываемый сертификат, нажмите правую кнопку мыши, и в открывшемся контекстном меню выберите пункт
«Отозвать».

Аналогично, можно отменить отзыв сертификата. Обратите внимание, что после отмены отзыва нужно вернуть доверие сертификату — правая кнопка мыши, «Доверие».

Списки отозванных сертификатов привязываются к корневому сертификату подписавшего эти сертификаты удостоверяющего центра.

Для просмотра списка отозванных сертификатов, относящихся к корневому сертификату, перейдите в закладку
«Сертификаты»,
выберите нужный корневой сертификат , правой кнопкой мыши откройте контекстное меню, и в нём выберите
«ЦС» - «Manage revocations».

Откроется список отозванных сертификатов.

Для создания списка отозванных сертификатов в формате, пригодном для экспорта в другие системы, выберите нужный корневой сертификат,
в контекстном меню по правой кнопке мыши выберите  «ЦС» - «Создать CRL»,
в открывшейся форме, при необходимости, уточните параметры, и нажмите «Да».

Созданные списки отзыва можно просмотреть в закладке
«Списки отозванных сертификатов».

Из этой же закладки списки отозванных сертификатов можно экспортировать (кнопка «Экспорт», формат экспорта PEM).