Для более безопасного и эффективного управления файлами ключей и сертификатов, необходимыми для работы сервиса 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».
Дополнительно нужно внести следующие изменения в шаблоны:
В закладке «Расширения» проверьте правильность данных:
тип сертификата «Центр сертификации»,
наличие отметки «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 включает в себя следующие шаги:
Создание корневого сертификата удостоверяющего центра
Создание закрытого ключа и сертификата открытого ключа сервера.
Экспорт для использования сервером:
Сертификата удостоверяющего центра
Закрытого ключа сервера
Сертификата открытого ключа сервера
Файла параметров Диффи-Хеллмана
Файла параметров дополнительной аутентификации TLS
Создание закрытого ключа и сертификата открытого ключа клиента
.Экспорт для использования клиентом:
Сертификата удостоверяющего центра
Закрытого ключа клиента
Сертификата открытого ключа клиента
Файла параметров дополнительной аутентификации TLS
Повторная генерация сертификатов по мере истечения их срока действия
Шаги 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).