Как выгрузить сертификат пользователя в Active Directory
Добрый день! Уважаемые подписчики и гости, компьютерного блога №1 pyatilistnik.org. Давно я что-то не рассказывал вам ничего, о SSL сертификатах, сегодня я это исправлю. Не для кого не секрет, что сертификаты безопасности, не только применяют для защиты сайта и реализации https подключений, но и для идентификации службы или учетной записи, например, при аутентификации на VPN сервере (Cisco Any Connect). Такие сертификаты устанавливаются на локальных компьютерах в домене, и пользователь о них может даже и не знать, а вот люди, кто использует свои домашние компьютеры, для подключения в корпоративную сеть, должны их иметь в своем локальном хранилище и поставить вручную. И чтобы это сделать, человек должен иметь выгруженный архив сертификатов в формате pfx, для этой установки. Сегодня я вам покажу, как выгрузить сертификат пользователя из центра сертификации, чтобы системный администратор мог его передать человеку, для дальнейшей настройки.
Для чего нужно выгружать сертификат
Как я и писал выше, основная задача, это подключение пользователя в закрытую, корпоративную сеть, так как это безопасно. Сертификаты выступают в роли дополнительной защиты, в случае компрометации пароля учетной записи. Узнал так вот злоумышленник пароль жертвы, но подключиться не сможет, так как не будет иметь сертификата.
Случай из практики, есть подрядчик, который должен выполнить работу, так как он не сидит в офисе как обычные сотрудники, то у него нет доменного компьютера, а значит он не может автоматически получить сертификат, а так как для его запроса, он должен быть внутри корпоративной сети, то он не может это осуществить, и не сможет подключиться по VPN, чтобы выполнить свою работу. Или пользователь потерял или сломал свой компьютер и ему срочно, необходимо получить доступ к корпоративной, локальной сети, он просит вас помочь в этой ситуации. И единственным способом это сделать, является ручная выгрузка его сертификата в формате pfx с закрытым ключом, чтобы вы в дальнейшем передали его по электронной почте, для последующей установки.
Восстановление сертификата в Active Directory
И так, чтобы произвести выгрузку открытого и закрытого ключа из центра сертификации, у вас должны на это быть права. Делать это может группа или отдельные пользователи, у которых есть права на определенный шаблон. Давайте дадим определение агента восстановления ключей.
Агент восстановления ключа – это лицо, которому разрешено восстановить сертификат от имени конечного пользователя. Поскольку роль агентов восстановления ключей может касаться важных данных, эту роль можно назначать только заслуживающим доверия лицам.
Если вы хотите иметь возможность восстанавливать сертификаты на центре сертификации Windows, то вам необходимо дать права на шаблон сертификата агента восстановления ключей (Key Recovery Agent). Как только вы это сделаете, то сможете подавать заявки на восстановление.
Настройка шаблона сертификата агента восстановления ключей
- Откройте оснастку "Шаблоны сертификатов (Certification Authority)".
- Щелкните правым кликом по шаблонам сертификатов (Certificate Templates) и выберите пункт управление (Manage)
- В дереве консоли щелкните правой кнопкой мыши шаблон сертификата Агент восстановления ключей.
- Нажмите кнопку Скопировать шаблон.
- В диалоговом окне Копирование шаблона щелкните Windows Server 2003 Enterprise, если не все центры сертификации и клиентские компьютеры работают под управлением операционной системы Windows Server 2008 R2, Windows Server 2008, Windows 7 или Windows Vista.
- В поле Шаблон введите новое отображаемое имя шаблона, а затем при необходимости измените все другие свойства.
- На вкладке Безопасность нажмите кнопку Добавить, введите имя пользователей, которым нужно выдать сертификаты агентов восстановления ключа, а затем нажмите кнопку ОК.
- В списке Имена групп или пользователей выберите только что добавленные имена пользователей. В группе Разрешения установите флажки Чтение и Заявка, затем нажмите кнопку ОК.
Так же убедитесь, что у вас выставлена галка, разрешающая экспорт закрытых ключей (Allow private key to be exported)
Теперь когда вы убедились в наличии необходимых разрешений на процедуру восстановления сертификата, мы можем произвести его выгрузку. Для этого откройте cmd От имени администратора в сессии той учетной записи у которой есть права на шаблон (Агент восстановления ключей). Для экспорта сертификата с закрытым ключом, нам поможет консольная утилита certutil, если вы готовились к экзаменам по MCSE, то вы ее должны знать.
Первым шагом нам необходимо выполнить запрос, на нахождение сертификата, по пользователю или его серийному номеру, использовать можно одну из двух.
- certutil -view -restrict “RequesterName=pyatilistnik\seminivan” --out StatusCode
- certutil -view -restrict “SerialNumber=7554505294e900781a46b1f39300014564563” -out StatusCode. Ваш серийный номер сертификата вы можете посмотреть в оснастке ADUC, выбрав пользователя и перейдя в его свойствах на вкладку "Опубликованные сертификаты". Далее переходите в состав и находите серийный номер, который будем использовать для выгрузки сертификата.
В итоге у меня команда отработала на ура.
Далее вы получаете BLOB файл
После чего выгружаете с помощью BLOB файла открытый и закрытый ключ в виде pfx архива,
Утилита certutil попросит вас задать пароль на архив, для большей безопасности.
Все теперь вы спокойно передаете архив с ключами по электронной почте, пользователю или подрядчику и на этом можно считать выгрузку сертификата из Active Directory завершенным. Вообще у утилиты cetrutil огромные возможности, которых нет в графическом интерфейсе.
Здесь только не хватает одного символа по дефолту.
Не certutil -getkey «7554505294e900781a46b1f39300014564563» C:\TEMP\Output\seminivan_BLOB
а
certutil -getkey «7554505294e900781a46b1f39300014564563» > C:\TEMP\Output\seminivan_BLOB
JHAN спасибо тебе мил человек)
JHAN пишешь чушь, как раз правильно:
certutil -getkey «7554505294e900781a46b1f39300014564563» C:\TEMP\Output\seminivan_BLOB
БЕЗ символа перенаправления вывода.
В противном случае, сформируется не запрос а г-но, которое при попытке восстановить по такому запросу контейнер будет выдавать ошибку:
CertUtil: -RecoverKey команда НЕ ВЫПОЛНЕНА: 0x8009310b (ASN: 267 CRYPT_E_ASN1_BADTAG)
CertUtil: Встречено неверное значение тега ASN1.
Инфо полезная, спасибо!
Но блин… глаз режет — неужели выучить русский язык сложнее, чем Active Directory?!