| John 的个人资料Старый нудила日志列表SkyDrive | 帮助 |
|
12月16日 Про сертификаты и Win Server 2008Как и обещал ранее, расскажу про сертификаты.
Задача :
Реализовать автоматическую постановку сертификата для сайта IIS. Тоесть совсем автоматическую.
Реализация:
--------------------
Server 2003 и IIS6, соответственно. Да проще простого :
set iiscertobj = CreateObject("IIS.CertObj")
iiscertobj.InstanceName = "w3svc/2059934190"
iiscertobj.ServerName = "localhost" iiscertobj.Import "Loshadka.pfx" , "bubu" , False , True
Далее прикрутить binding и ВСЁ. Проще простого.
--------------------
Server 2008 (ну всё же beta он... хорошая, но beta) и IIS7 соответственно. Даже при установленной совместимости с IIS6 ответом на :
set iiscertobj = CreateObject("IIS.CertObj")
будет :
Microsoft VBScript runtime error: ActiveX component can't create object: 'IIS.CertObj'
Вот так. Ну должна же быть какая-то замена?
Ищем и ... Не находим :-(
Что предлагают нам взамен? А ничего. Пользуйтесь утилитами.
Отсупление - очень напоминает ситуацию с File Server Resource Manager из 2003-го R2. Ребята создали механизм, но скриптовую обвязку к нему не дали. Пользуйтесь утилями (http://technet.microsoft.com/en-us/cc730417.aspx -
Q: Is there a public scriptable API for FSRM?
A: FSRM has command line tools - dirquota.exe , filescrn.exe and storrept.exe which you can use for scripting. One more thing - the APIs themselves are not public - we plan to publish them in a future Windows release. ) Ну утилями тоже можно (но не совсем гибко и удобно). Так камими утилями-то? Куда ни кинь - везде рассказывают "какой менюшкой надо пользоваться, что бы импортировать сертификат". Это "автоматизация"????? Ррррррррр!!!!!!!
НО! Мы хитрые и знаем, что есть certutil. ОТЛИЧНО! Для начала импортнём сертификат. Ну ка расскажи нам как? (для уменьшения простыни пропустим через find):
>certutil -? | find /I "pfx"
-MergePFX -- Merge PFX files -ConvertEPF -- Convert PFX files to EPF file О как ! Что-то не видно слова import ... Но есть более расширенная справка. Может чего скажет?
>certutil -v -? | find /I "pfx"
-MergePFX -- Merge PFX files -ConvertEPF -- Convert PFX files to EPF file BackupDirectory -- directory to store backed up PFX file CertUtil [Options] -restoreKey BackupDirectory | PFXFile BackupDirectory -- directory containing PFX file to be restored PFXFile -- PFX file to be restored PFX file CertUtil [Options] -RecoverKey RecoveryBlobInFile [PFXOutFile [RecipientIndex]] CertUtil [Options] -MergePFX PFXInFileList PFXOutFile Merge PFX files PFXInFileList -- Comma separated PFX input file list PFXOutFile -- PFX output file CertUtil [Options] -ConvertEPF PFXInFileList EPFOutFile [cast | cast-] [V3CACertId][,Salt] Convert PFX files to EPF file PFXInFileList -- Comma separated PFX input file list И тут ни слова про импорт. Что делать? На просторах MS сайта, в закоулках, находим - http://technet.microsoft.com/en-us/library/cc786245.aspx
который говорит - ЕСТЬ правильные ключи у certutil для импорта PFX сертификата. И правда :
>certutil -importpfx -?
Usage: CertUtil [Options] -importPFX PFXFile Import certificate and private key PFXFile -- PFX file to be imported Defaults to personal machine store. Options:
-f -- Force overwrite -user -- Use HKEY_CURRENT_USER keys or certificate store -gmt -- Display times as GMT -seconds -- Display times with seconds and milliseconds -v -- Verbose operation -privatekey -- -p Password -- Password -csp Provider -- Provider CertUtil -? -- Display a verb list (command list)
CertUtil -importPFX -? -- Display help text for the "importPFX" verb CertUtil -v -? -- Display all help text for all verbs Зачем скрывать-то? Умеет ведь. Но не говорит, а надо выпытывать :-) Это ещё не вся правда. Оказывается у команды certutil -importpfx есть ещё ключи, которые она даже не говорит, но понимает. И написано это в одном "глухом месте" - http://blogs.technet.com/pki/archive/2007/07/29/marking-private-keys-as-non-exportable-with-certutil-importpfx.aspx
От так вот. Но это полдела. То что в IIS6 vs делали 4-мя строчками в скрипте, мы ещё не доделали. Т.е. сертификат импортировали, а к сайту его не привязали. Как? "Да легко!" говорят нам разработчики. Вот так, например. О скриптах даже речи не идёт. Программу писАть надоть. Да и certificate hash надо откуда-то взять. Тоже желательно "автоматически". Есть ещё программка. AppCmd, подумаете Вы? И ошибётесь. ApCmd (основная утилита для IIS7) не привязывает сертификаты к сайту. А кто? Не поверите! NETSH !!!! Убедитесь, набрав команду :
netsh -c "http" add sslcert ?
Т.е. Вместо удобного объекта для работы с сертификатами, мы получили связку из 3-х программ (которые ещё связать надо, что не особо тревиально): certutil (c неописанными параметрами), appcmd (привязка https на сайт) и netsh (для привязки сертификата к IP адресу и порту).
С ПРОДОЛЖАЮЩИМСЯ, ВАС, БЕТАТЕСТИРОВАНИЕМ Windows Server 2008 !!!! :-))))))
评论 (6)
引用通告此日志的引用通告 URL 是: http://kgb-boss.spaces.live.com/blog/cns!8B2CF0F53CBBA8FF!431.trak 引用此项的网络日志
|
|
|