====== XCA — OpenVPN ====== {{:xca:bigkey.png|}} {{:openvpn:openvpntech_logo_rounded_antialiased1.png?300|}} Управление ключами и сертификатами [[openvpn:openvpn|OpenVPN]] в [[xca:xca|XCA]] За основу взята статья 2011 года [[http://www.carbonwind.net/VPN/XCA_OpenVPN/XCA_OpenVPN.htm|Using XCA to configure the OpenVPN PKI part as an alternative to OpenVPN's easy-rsa]] ({{:xca:carbonwind_xca-openvpn.odt|}}) Для удобства работы создана БД {{:xca:openvpn.xdb|OpenVPN.xdb}} с шаблонами: * OpenVPN_ЦС * OpenVPN_Сервер * OpenVPN_Клиент ====== Ограничения ====== - Нельзя сохранить в БД параметры Диффи — Хеллмана, их можно только создать: [[xca:xca#Генерация параметров Диффи — Хеллмана]]. Открыта [[https://github.com/chris2511/xca/issues/96|тема #96]]. - Нельзя создать и сохранить в БД ''ta.key'', используемый для ''tls-auth''. Открыта [[https://github.com/chris2511/xca/issues/89|тема #89]]. ====== Типовые действия ====== * **[[#Создание нового клиента]]** * **[[xca:xca#Отзыв сертификата]]** * **[[#Создание нового сервера]]** * **[[#Создание нового центра сертификации]]** ===== Создание нового сервера ===== - [[xca:xca#Экспорт сертификата|Экспорт сертификата центра сертификации]] - [[#Создание сертификата сервера]] - [[xca:xca#Экспорт сертификата]] - [[xca:xca#Экспорт закрытого ключа]] - [[xca:xca#Генерация параметров Диффи — Хеллмана]] ===== Создание нового клиента ===== - [[xca:xca#Экспорт сертификата|Экспорт сертификата центра сертификации]] - [[#Создание сертификата клиента]] - [[xca:xca#Экспорт сертификата]] - [[xca:xca#Экспорт закрытого ключа]] ====== Создание нового центра сертификации ====== Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'' * в разделе ''Подписание'' выбрать ''Создать самозаверенный сертификат'' * в поле ''Алгоритм подписи'' выбрать ''SHA1'' * в разделе ''Шаблон'' для нового сертификата выбрать ''OpenVPN_ЦС'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''[[xca:xca#organizationUnitName]]'' * ''[[xca:xca#commonName]]'' * ''[[xca:xca#emailAddress]]'' Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' нажать кнопку Создать. Из шаблона подставляются значения для вкладок: * ''Расширения'' * ''Область применения ключа'' * ''Netscape'' На вкладке ''Расширения'' нужно задать период действия сертификата. После заполнения полей нужно нажать кнопку OK ---- При необходимости можно выполнить процесс «с нуля»: Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'' * в разделе ''Подписание'' выбрать ''Создать самозаверенный сертификат'' * выбрать ''Алгоритм подписи'' выбрать ''SHA1'' * в разделе ''Шаблон'' для нового сертификата выбрать ''[default] CA'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''[[xca:xca#organizationUnitName]]'' * ''[[xca:xca#commonName]]'' * ''[[xca:xca#emailAddress]]'' Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' нажать кнопку Создать. На вкладке ''Расширения'' в поле ''Тип'' нужно выбрать ''Центр сертификации'', для остальных полей можно оставить значения по умолчанию. На вкладке ''Область применения ключа'' в поле ''X509v3 Key usage'' нужно выбрать * ''Certificate Sign'' * ''CLR Sign'' На вкладке ''Netscape'' в поле ''Netscape Cert Type'' нужно выбрать: * ''SSL CA'' * ''S/MIME CA'' * ''Object Signing CA'' Также нужно удалить значение поля ''Netscape Comment'' На вкладке ''Дополнительно'' будет показана результирующая информация: X509v3 Basic Constraints critical: CA:TRUE X509v3 Subject Key Identifier: E1:88:9E:34:60:7B:00:4D:98:9B:03:62:D7:B3:BD:DC:D2:24:68:31 X509v3 Key Usage: Certificate Sign, CRL Sign Netscape Cert Type: SSL CA, S/MIME CA, Object Signing CA Netscape Comment: xca certificate Проверив её можно нажать кнопку OK ====== Создание сертификата сервера ====== Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'', в разделе ''Подписание'' * в поле ''Использовать этот сертификат для подписи'' нужно выбрать (созданный ранее) ''OpenVPN CA'' * в поле ''Алгоритм подписи'' выбрать ''SHA 1'' * в поле ''Шаблон для нового сертификата'' выбрать ''OpenVPN_Сервер'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''[[xca:xca#organizationUnitName]]'' * ''[[xca:xca#commonName]]'' * ''[[xca:xca#emailAddress]]'' Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' Нажать кнопку Создать Теперь в поле ''Закрытый ключ'' нужно выбрать только что созданный ключ ''OpenVPN Server (RSA:2048 bit)'' Из шаблона подставляются значения для вкладок: * ''Расширения'' * ''Область применения ключа'' * ''Netscape'' На вкладке ''Расширения'' нужно задать период действия сертификата. После заполнения полей нужно нажать кнопку OK ---- При необходимости можно выполнить процесс «с нуля»: Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'', в разделе ''Подписание'' * в поле ''Использовать этот сертификат для подписи'' нужно выбрать (созданный ранее) ''OpenVPN CA'' * в поле ''Алгоритм подписи'' выбрать ''SHA 1'' * в поле ''Шаблон для нового сертификата'' выбрать ''[default] HTTPS_server'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''[[xca:xca#organizationUnitName]]'' * ''[[xca:xca#commonName]]'' * ''[[xca:xca#emailAddress]]'' Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' Нажать кнопку Создать Теперь в поле ''Закрытый ключ'' нужно выбрать только что созданный ключ ''OpenVPN Server (RSA:2048 bit)'' На вкладке ''Расширения'' в разделе ''X509v3 Base constraints'' в поле ''Тип'' выбрать ''Конечный субъект'' В разделе ''Key identifier'' нужно выбрать: * ✔ ''Critical'' * ✔ ''Subject Key Identifier'' Также нужно задать период действия ключа. На вкладке ''Область применения ключа'' в поле ''X509v3 Key Usage'' выбрать: * ''Digital Signature'' * ''Key Encipherment'' в поле ''X509v3 Extended Key Usage'' выбрать: * ''TLS Web Server Authentication'' На вкладке ''Netscape'' нужно выбрать * '' SSL Server'' и удалить значение поля ''Netscape Comment'' На вкладке ''Дополнительно'' будет показана результирующая информация: X509v3 Basic Constraints critical: CA:FALSE X509v3 Subject Key Identifier: C1:32:F2:14:7F:3B:CB:44:B4:25:C8:C2:41:4C:B1:D4:80:9B:D4:A3 X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 Extended Key Usage: TLS Web Server Authentication Netscape Cert Type: SSL Server Проверив её можно нажать кнопку OK ====== Создание сертификата клиента ====== Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'', в разделе ''Подписание'' * в поле ''Использовать этот сертификат для подписи'' нужно выбрать (созданный ранее) ''OpenVPN CA'' * в поле ''Алгоритм подписи'' выбрать ''SHA 1'' * в поле ''Шаблон для нового сертификата'' выбрать ''OpenVPN_Клиент'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''[[xca:xca#organizationUnitName]]'' * ''**[[xca:xca#commonName]]**'' * ''[[xca:xca#emailAddress]]'' Важно заполнить поле **''[[xca:xca#commonName]]''** Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' Нажать кнопку Создать Из шаблона подставляются значения для вкладок: * ''Расширения'' * ''Область применения ключа'' * ''Netscape'' На вкладке ''Расширения'' нужно задать период действия сертификата. После заполнения полей нужно нажать кнопку OK ---- При необходимости можно выполнить процесс «с нуля»: Перейти на вкладку ''Сертификаты'' и нажать кнопку Новый сертификат На вкладке ''Первоисточник'', в разделе ''Подписание'' * в поле ''Использовать этот сертификат для подписи'' нужно выбрать (созданный ранее) ''OpenVPN CA'' * в поле ''Алгоритм подписи'' выбрать ''SHA 1'' * в поле ''Шаблон для нового сертификата'' выбрать ''[default] HTTPS_client'' Нажать кнопку Применить всё На вкладке ''Субъект'' нужно заполнить поля: * ''[[xca:xca#Internal Name]]'' * ''[[xca:xca#countryName]]'' * ''[[xca:xca#stateOfProvinceName]]'' * ''[[xca:xca#localityName]]'' * ''[[xca:xca#organizationName]]'' * ''**[[xca:xca#organizationUnitName]]**'' * ''[[xca:xca#commonName]]'' * ''[[xca:xca#emailAddress]]'' Нажать кнопку Сгенерировать новый ключ В окне появившемся окне ''Certificate and Key management'' * в поле ''Тип ключа'' выбрать ''RSA'' * в поле ''Длина ключа'' выбрать ''2048 bit'' Нажать кнопку Создать На вкладке ''Расширения'' в разделе ''X509v3 Base constraints'' в поле ''Тип'' выбрать ''Конечный субъект'' В разделе ''Key identifier'' нужно выбрать: * ✔ ''Critical'' * ✔ ''Subject Key Identifier'' Также нужно задать период действия ключа. На вкладке ''Область применения ключа'' в поле ''X509v3 Key Usage'' выбрать: * ''Digital Signature'' * ''Key Agreement'' в поле ''X509v3 Extended Key Usage'' выбрать: * ''TLS Web Client Authentication'' На вкладке ''Netscape'' нужно выбрать * ''SSL Client'' * ''S/MIME'' и удалить значение поля ''Netscape Comment'' На вкладке ''Дополнительно'' будет показана результирующая информация: X509v3 Basic Constraints critical: CA:FALSE X509v3 Subject Key Identifier: 1D:B8:66:BD:49:11:B3:83:10:E5:F3:7F:92:53:6D:AE:97:64:FB:83 X509v3 Key Usage: Digital Signature, Key Agreement X509v3 Extended Key Usage: TLS Web Client Authentication Netscape Cert Type: SSL Client, S/MIME Проверив её можно нажать кнопку OK ====== Ссылки ====== [[http://www.carbonwind.net/VPN/XCA_OpenVPN/XCA_OpenVPN.htm|Using XCA to configure the OpenVPN PKI part as an alternative to OpenVPN's easy-rsa]] [[https://www.cult-of-tech.net/2016/05/setting-up-openvpn-certificates/|Setting up OpenVPN with Certificates - Cult of Tech.net]] [[https://wiki.astralinux.ru/pages/viewpage.action?pageId=27361598|Создание ключей для OpenVPN с помощью графического инструмента XCA. - Справочный центр - Справочный центр Astra Linux]] {{tag>Admin Network Encryption VPN}}