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 (скажем, пароли) и сохраняет их в архиве в зашифрованном виде (с указанным паролем). Вот выдержка из всех трех соответствующих примеров, поскольку они могут скоро исчезнуть:
Архивируйте метабазу и укажите зашифрованный пароль.
msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey
Показать архив. Пароли будут отображаться в зашифрованном виде.
msdeploy -verb:dump -source:archivedir=c:\mydir
Используйте пароль, который вы указали ранее для отображения архива. Пароли будут отображаться в виде простого текста.
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'] / Модель процесса 'помечена как безопасная. Вы должны указать пароль шифрования для архивирования этого свойства.
Поскольку я использую IIS 7, данное "местоположение" является выражением XPath, относящимся к элементу XML, в котором находится защищенный элемент данных. Я подбодрил самые важные части. Я правильно предположил, что рассматриваемый файл 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
не принял бы произвольный пароль, подобный этому: "отшелушивание витализирует отчаяние, откидывающее петлевую цель одноколесного велосипеда". Он также выдает сообщение об ошибке, не являющееся следствием sequitur:
Ошибка: провайдер "archivedir" не поддерживает настройку "encryptPassword=exfoliate витализировать отчаяние, откидывающуюся на одноколесном велосипеде". Поддерживаются следующие параметры (authType, computerName, encryptPassword, includeAcls, пароль, prefetchPayload, userName, wmsvc).
Я думаю, что это не понравилось пространства. Когда я использовал дефисы, это сработало. (Нет, я не использовал этот пароль;-)