Андрей Попов - Windows Script Host для Windows 2000/XP
Управление сертификатами с помощью ММС
Для того чтобы посмотреть свойства созданных сертификатов, нам потребуется запустить консоль управления Microsoft Management Console (ММС) — инструмент для создания, сохранения и открытия средств администрирования (называемых консолями (Snap-in) ММС), которые управляют оборудованием, программными и сетевыми компонентами операционной системы Windows. Для того чтобы загрузить ММС, нужно выполнить команду mmc либо в командной строке, либо с помощью пункта Выполнить (Run) меню Пуск (Start). В результате на экране появится окно новой консоли (рис. 4.5).
Рис. 4.5. Новая консоль ММС
Теперь добавим в консоль оснастку Сертификаты (Certificates). Для этого нужно в меню Консоль (Console) выбрать пункт Добавить/удалить оснастку (Add/Remove Snap-in), после чего появится диалоговое окно, показанное на рис. 4.6.
Рис. 4.6. Диалоговое окно добавления/удаления оснасток для консоли ММС
После нажатия кнопки Добавить (Add) выводится список всех имеющихся оснасток (рис. 4.7).
РР· этого СЃРїРёСЃРєР° нужно выбрать Сертификаты (Certificates) Рё нажать РєРЅРѕРїРєСѓ Добавить (Add). После этого РІ РЅРѕРІРѕРј диалоговом РѕРєРЅРµ отмечаем, что добавляемая оснастка будет управлять сертификатами для своей учетной записи (СЂРёСЃ. 4.8) Рё нажимаем РєРЅРѕРїРєСѓ Готово (Finish).
Никаких других оснасток в окно консоли мы добавлять не будем, поэтому нажимаем кнопку Закрыть (Close) в списке оснасток и кнопку OK в окне добавления/удаления оснасток. Созданные нами сертификаты будут находиться в разделе ЛичныеСертификаты (PersonalSertificates) (рис. 4.9).
Выделив нужный сертификат в списке и нажав клавишу <Enter>, мы выведем окно с описанием свойств сертификата (рис. 4.10).
Рис. 4.7. Список всех оснасток
Рис. 4.8. Выбор типа сертификатов, которым будет управлять добавляемая оснастка Сертификаты
Рис. 4.9. Расположение личных сертификатов
Рис. 4.10. Свойства сертификата "Попов надежный"
Как мы видим, для обоих новых сертификатов не установлено доверие. Для того чтобы установить доверие к одному из сертификатов ("Попов надежный"), достаточно просто перетащить при помощи мыши этот сертификат в раздел Доверенные корневые центры сертификации | Сертификаты (Trusted Root Certification Authorities) (рис. 4.11).
ЗамечаниеЕсли при перетаскивании сертификата в новое место держать нажатой клавишу <Ctrl>, то сертификат будет не перемещен, а скопирован.
Рис. 4.11. Сертификаты, к которым установлено доверие
Свойства сертификата "Попов надежный" после установки доверия к нему показаны на рис. 4.12.
Выполним теперь СЌРєСЃРїРѕСЂС‚ РІ файл сертификата "РџРѕРїРѕРІ ненадежный" (это понадобится нам РІ дальнейшем РїСЂРё построении политики ограниченного использования программ). Для этого следует выделить нужный сертификат Рё выбрать РІ меню Действие | Р’СЃРµ задачи (Action | All Tasks) РїСѓРЅРєС‚ РРєСЃРїРѕСЂС‚ (Export), после чего запустится мастер экспорта сертификатов, РІ котором нужно согласиться СЃРѕ всеми настройками, предлагаемыми РїРѕ умолчанию, Р° РІ качестве имени экспортируемого файла указать "C:ScriptРџРѕРїРѕРІ.cer".
Р РёСЃ. 4.12. Новые свойства сертификата "РџРѕРїРѕРІ надежный"В
Добавление к сценарию цифровой подписи
Подписать файл со сценарием WSH можно двумя способами. Во-первых, можно использовать программу SignCode.exe, с помощью которой производится подпись любого исполняемого кода. Однако эта программа не является стандартной частью операционной системы Windows, ее нужно устанавливать отдельно. Поэтому далее мы будем рассматривать второй способ подписи сценариев — с помощью метода SignFile объекта Scripting.Signer, который регистрируется в системе при установке WSH 5.6.
Р’ листинге 4.7 приведен сценарий SignScript.wsf, СЃ помощью которого РјС‹ будем подписывать файлы сценариев различных типов, используя личные сертификаты "РџРѕРїРѕРІ надежный" Рё "РџРѕРїРѕРІ ненадежный". РџСЂРё запуске этого сценария нужно указать РґРІР° именных параметра командной строки: /file для задания пути Рє подписываемому файлу Рё /cert, содержащий название цифрового сертификата, РЅР° РѕСЃРЅРѕРІРµ которого будет создаваться РїРѕРґРїРёСЃСЊ. Рти параметры РІ сценарии подставляются РІ качестве аргументов метода SignFile объекта Scripting.Signer:
//Создаем объект Scripting.Signer
Signer = WScript.CreateObject("Scripting.Signer");
File = WScript.Arguments.Named("file"); //РРјСЏ файла
Cert = WScript.Arguments.Named("cert"); //Название сертификата
Signer.SignFile(File, Cert); //Подписываем файл
ЗамечаниеВ методе SignFile может быть указан третий необязательный параметр, задающий путь к хранилищу сертификатов. В сценарии SignScript.wsf этот параметр не используется, т.к. для создания подписи применяются личные сертификаты, находящиеся на локальной машине.