MS Webdeploy V3 加密密碼正確用法

MS Webdeploy V3 加密密碼正確用法

我已在我的(“舊”)Server 2003/IIS6 和(“新”)Server 2012/IIS8 上安裝了 MS Webdeploy(版本 3.5)。目前,我遵循此處文章中的指南,在從“舊”伺服器轉移到“新”伺服器之前備份目標伺服器,並且我已通過以下方式成功備份:

%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 備份所有網站),建議「如果您有 SSL 證書,則需要 encryptPassword [命令]」。
由於我是憑證新手,該參數中將包含哪個密碼?

此外,當我準備傳輸時,是否有其他命令需要添加到我的備份或傳輸中? (是否有可能指示使用場景的完整命令清單?)我從 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']/流程模型'被標記為安全。您必須指定加密密碼才能存檔此屬性。

因為我使用的是 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不會接受這樣的任意密碼:「去角質、活力、絕望、斜倚獨輪車、大理石花紋、目標被撫摸」。它也給了一個不合邏輯的錯誤訊息:

錯誤:提供者「archivedir」不支援「encryptPassword=exfoliate 活力絕望斜倚獨輪車大理石花紋目標撫摸」設定。支援的設定有(authType、computerName、encryptPassword、includeAcls、password、prefetchPayload、userName、wmsvc)。

我認為它不喜歡這些空間。當我使用連字符代替時,它起作用了。 (不,我沒有使用這個密碼;-)

相關內容