Ви є тут

Запрос сертификата на недоменных компьютерах

Используя подключение к корпоративной сети через IPSec (а это, как минимум, безопаснее чем PPTP), сталкиваешся с дополнительными трудностями. Например, нужно реализовать возможность получения сертификата на клиенте. Для доменных компьютеров это не проблема - корневой сертификат выдается автоматом, а пользовательский несложно получить. Для недоменных (сторонних) компьютеров сложнее. Об этом дальше...

Исходные данные:

  • CA виндовый (Windows Server 2003), на DC
  • VPN IPsec на Cisco 2821 с авторизацией через Radius + сертификат
  • Клиенты Windows XP, Windows 7
  • VPN PPTP на ISA 2004

Задача: реализовать возможность получения сертификата из интернет через PPTP.

Реализация

Конечно же запросить сертификат для Windows XP можно через веб по адресу hххp://domaincontroller/certsrv. Но для Windows 7 не выдаст без патча (support.microsoft.com/kb/922706). Да и запрос через веб - это как-то не спортивно. Решил написать скрипт с использованием утилиты certreq. Эта утилита есть в винде на борту, но я использовал ее копию рядом со скриптом. Важный момент: certreq для Windows 7 и Windows XP разный.

Написал я значит скрипт запроса сертификата, а он то не получается. А все через то, что нет доверия к центру сертификации. Для того чтобы доверять ему, нужно импортировать корневой сертификат. И тут нам пригодится утилита certmgr (в винде ее нет, входит в Microsoft SDKs).

Итак, скрипт вышел таким:

REM  ================================================================
REM Obtaining a user certificate for other computer
REM with certreq & certmgr utility
REM  =================================================================
REM Date    : 31.01.2011
REM Auth    : ruslan [at] sheremet.org
REM Updt    :
REM  ==================================================================
REM import Root CA certificate
certmgr.exe -add -c CA.cer -s -r currentUser Root
REM import CA certificate
certmgr.exe -add -c CA.cer -s -r currentUser CA
REM create a certificate request
certreq7 -new -f -attrib "CertificateTemplate:User" -config "domaincontroller\CA" request.ini userreq.req
REM send a certificate request
certreq7 -submit -config "domaincontroller\CA"  Userreq.req Usercert.cer
REM accept the certificate
certreq7 -accept usercert.cer

Рядом со скриптом ложим утилиты certmgr и certreq7 (цыфру 7 я дописал для различия от ХР версии), корневой сертификат CA.cer (его можно экспортировать с любой доменной машины) и request.ini. Также нужно изменить "domaincontroller\CA" на свое значение.

Содержимое request.ini:

[Version]
Signature= "$Windows NT$"
[NewRequest]
KeyLength = 1024
RequestType = PKCS10
ProviderName = "Microsoft Enhanced Cryptographic Provider v1.0"
Silent = TRUE
Exportable = TRUE

[RequestAttributes]
CertificateTemplate=User

 

Коментарі

Поправте пожалуйста опечатку:>Ядом со скриптом ложим...

Дякую, виправив

Додати коментар

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.

Вхід

Powered by Rublin team