MS Webdeploy V3 encryptPassword правильное использование

MS Webdeploy V3 encryptPassword правильное использование

Я установил MS Webdeploy (версия 3.5) на свой ("старый") Server 2003/IIS6 и ("новый") Server 2012/IIS8. В настоящее время я следую рекомендациям в этой статье, выполняя резервное копирование целевого сервера перед переносом со "старого" на "новый" сервер, и я успешно выполнил резервное копирование следующим образом:

%windir%\system32\inetsrv\appcmd add backup “IIS_Backup_2012”

Я также готовлюсь сделать резервную копию таким образом (ниже).

cd c:\Program Files\IIS\Microsoft Web Deploy V3
msdeploy -verb:sync -source:webServer -dest:package=E:\web_data\IIS_Backup_2012.zip

Я успешно выполнил резервное копирование таким образом, хотя в посте, (Резервное копирование всех веб-сайтов с помощью MSDeploy), предполагается, что «команда encryptPassword [команда] необходима, если у вас есть сертификаты SSL».
Поскольку я новичок в сертификатах, какой пароль следует включить в этот параметр?

Кроме того, при подготовке к переносу, есть ли другие команды, которые мне, возможно, придется добавить либо к резервной копии, либо к переносу? (Есть ли полный список команд, который мог бы указать сценарии использования?) Я нашел несколько списков из MS Tech Net (https://technet.microsoft.com/en-us/library/dd569001%28v=ws.10%29.aspx) и (https://technet.microsoft.com/en-us/library/dd569089%28v=ws.10%29.aspx), но я не был полностью уверен в том, как использовать его в моих конкретных целях, а именно для передачи только веб-файлов и конфигурации, а не базы данных.

Большое спасибо за любые предложения.

решение1

Ну, я только что узнал, зачем нужен пароль. (Для тех, кто не знает)как(Я показал пример командной строки внизу.)

Согласно одному из примеров наэта страница, encryptPasswordаргумент является опцией для archiveDir, и он берет любые зашифрованные данные в конфигурации IIS (например, пароли) и сохраняет их зашифрованными (с указанным паролем) в архиве. Вот отрывок из всех трех соответствующих примеров, поскольку они могут вскоре исчезнуть:

  1. Архивируйте метабазу и укажите пароль шифрования.

    msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey
    
  2. Показать архив. Пароли будут показаны в зашифрованном виде.

    msdeploy -verb:dump -source:archivedir=c:\mydir
    
  3. Используйте пароль, который вы указали ранее, чтобы отобразить архив. Пароли будут показаны в виде обычного текста.

    msdeploy -verb:dump -source:archivedir=c:\mydir,encryptPassword=MyPassKey
    

Если я правильно понимаю, для работающего сайта эта информация зашифрована с помощью машинного ключа ящика, на котором запущен IIS. По необходимости msdeploy должен расшифровать эту информацию, поскольку машинный ключ на новой машине будет другим. Поэтому вам нужно выбрать свой собственный пароль, чтобы создать архив, который независим от исходного ящика или ящика, с которого вы запускаете msdeploy.

Пример

В моем случае я знал, что мне нужно указать эту опцию, поскольку msdeploy отказался завершить создание архива и завершил работу с ошибкой, подобной следующей (выделено мной):

Ошибка: свойство «пароль»расположен в '/webServer/appHostConfig[@path='']/location[@path='']/section[@name='system.applicationHost/applicationPools']/applicationPools/add[@name='NameOfAppPool']/process Model'отмечен как безопасный. Для архивации этого свойства необходимо указать пароль шифрования.

Поскольку я использую IIS 7, заданное "location" является выражением XPath, ссылающимся на элемент XML, где находится защищенный datatum. Я правильно предположил, что рассматриваемый файл XML был C:\Windows\System32\inetsrv\config\applicationHost.config, и вот эта строка:

<add name="NameOfAppPool" autoStart="true" managedPipelineMode="Integrated">
    <processModel identityType="SpecificUser" userName="IUSR_CUSTOM" password="[enc:IISWASOnlyAesProvider:G0BBLEDYG00K=:enc]" />
</add>

Конечно же, строка содержит атрибут пароля, который я не хочу хранить в открытом виде.

Как

Вот как указать пароль шифрования для msdeploy:

msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey

Вы также можете использовать его -source:archivedir=c:\mydir,encryptPassword=MyPassKey, когда вам необходимо расшифровать зашифрованные данные.

Предостережение

Но будьте осторожны. Я заметил, что encryptPasswordне принимает произвольный пароль вроде этого: "exfoliate vitalize tranquiling reclining unicycle marbling aim petted". Он также выдает сообщение об ошибке non-sequitur:

Ошибка: поставщик 'archivedir' не поддерживает настройку 'encryptPassword=exfoliate vitalize tranquiling reclining unicycle marbling aim petted'. Поддерживаемые настройки: (authType, computerName, encryptPassword, includeAcls, password, prefetchPayload, userName, wmsvc).

Думаю, ему не понравились пробелы. Когда я использовал вместо них дефисы, это сработало. (Нет, я не использовал этот пароль ;-)

Связанный контент