Вопрос или проблема
Я ищу решение, чтобы подписать CSR с моего Linux-устройства с использованием нашего Windows CA с конкретным шаблоном от контроллера домена прямо с Linux-устройства.
Почему?
Мне нужен сертификат компьютера, подписанный нашей службой сертификатов Active Directory для аутентификации 802.1x в внутренних сетях. И беспроводная, и проводная сети используют EAP Transport Layer Security (EAP-TLS), который требует сертификат компьютера для получения доступа к внутренней сети.
Например, мы используем это приложение для наших пользователей MacOS
https://apps.apple.com/us/app/certificate-request/id1412486531?mt=12
Было бы хорошо, если бы я нашел что-то подобное для Linux (мы используем Ubuntu). Мне нужен самый простой способ это сделать, потому что мне нужно написать документацию, которую наши пользователи могут использовать для получения доступа к внутренним сетям.
Я присоединил компьютер на Linux к домену и установил корневой сертификат CA. Следующий шаг – процесс подписания CSR, который необходим для аутентификации 802.1x в сети, но я не нашел простого способа достичь этого.
Для тех, кто ищет то же самое, на данный момент, похоже, нет простого способа это сделать. Я нашел некоторые сторонние инструменты, которые могут сделать то, что я хотел.
https://revocent.com/linux-certificate-auto-enrollment-with-microsoft-ca/
https://revocent.com/products/certaccord-enterprise/certaccord-enterprise-demos/
Canonical имеет некоторые планы по интеграции Ubuntu с AD, чтобы вы могли распространять сертификаты через GPO AD. Вы можете прочитать больше в блоге ниже.
https://ubuntu.com/blog/new-active-directory-integration-features-in-ubuntu-22-04-faq
Вы можете использовать certmonger для запроса сертификатов из службы сертификатов Active Directory через Простой протокол регистрации сертификатов (SCEP).
Смотрите документацию RHEL для получения деталей.
Ответ или решение
Чтобы запросить цифровые сертификаты у Windows CA с Linux машины через Remote Procedure Call (RPC), вам необходимо выполнить несколько шагов. Это позволит вам подписать CSR (Certificate Signing Request) с использованием конкретного шаблона на контроллере домена, что крайне важно для аутентификации 802.1x в вашей внутренней сети. В данной инструкции приводится пошаговое руководство по этому процессу с использованием утилиты certmonger
.
Шаг 1: Установка зависимостей
Перед началом убедитесь, что у вас установлены необходимые пакеты. Для этого выполните следующие команды в терминале Ubuntu:
sudo apt update
sudo apt install certmonger openssl
Шаг 2: Настройка certmonger
Certmonger — это эффективный инструмент для автоматического запроса, получения и управления сертификатами. Он поддерживает протоколы, такие как SCEP и RPC, для работы с Microsoft CA. Вам нужно будет настроить его для работы с вашим Windows CA.
-
Конфигурация CA
Создайте конфигурационный файл для вашего сертификата. Для этого создайте новый файл в/etc/certmonger/
или используйте встроенные конфигурации. Например, создайте файлmy_ca
:sudo nano /etc/certmonger/my_ca
Вставьте в файл следующую информацию:
# Подключение к Microsoft CA через RPC [my_ca] ca_type = "ipa" ca = "Your_Certificate_Authority_Name" cert_template = "Your_Certificate_Template_Name"
Замените
Your_Certificate_Authority_Name
иYour_Certificate_Template_Name
на соответствующие значения из вашей конфигурации CA. -
Настройка учетных данных
Для обеспечения доступа к CA вам могут потребоваться учетные данные домена. Убедитесь, что ваша машина Linux присоединена к домену Active Directory и установлены необходимые пакеты для работы с Kerberos (например,krb5-user
).
Шаг 3: Создание CSR
Создайте новый CSR с помощью openssl
:
openssl req -new -newkey rsa:2048 -nodes -keyout my_key.pem -out my_csr.csr
При выполнении этой команды вам будет предложено ввести информацию о сертификате. Убедитесь, что указали правильные параметры.
Шаг 4: Запрос сертификата
Теперь вы готовы запросить сертификат у Microsoft CA. Выполните следующую команду:
certmonger -d my_ca -r my_csr.csr
Это отправит запрос на подпись вашего CSR на указанный CA и получит подписанный сертификат.
Шаг 5: Сохранение и использование сертификата
После успешного завершения запроса у вас будет новый сертификат, который можно использовать для аутентификации 802.1x в вашей сети. Убедитесь, что сертификат и закрытый ключ хранятся в безопасном месте.
# Переместите сертификат в нужное место
sudo mv my_cert.crt /etc/ssl/certs/
Заключение
С помощью вышеуказанных шагов вы сможете получить цифровые сертификаты от Microsoft CA с Linux машины, что значительно упростит процесс аутентификации в вашей сети. Certmonger является основным инструментом, который поможет упростить весь процесс, поддерживая как протокол SCEP, так и RPC.
Таким образом, вы можете также рассмотреть использование сторонних решений, которые могут предложить более простые интерфейсы для работы с сертификатами в Linux, если вам нужны дополнительные возможности и функциональность.