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

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


sudo apt-get install xca


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В правом списке дополнительно выбирать «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».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для сервера:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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