MS Webdeploy V3 encryptPassword の正しい使用方法

MS Webdeploy V3 encryptPassword の正しい使用方法

私は、(「古い」) 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 によるすべての Web サイトのバックアップ) では、「SSL 証明書がある場合は encryptPassword [コマンド] が必要です」と書かれています。
証明書については初心者なので、そのパラメータにはどのパスワードが含まれるのでしょうか?

さらに、転送の準備をする際に、バックアップまたは転送のどちらかまたは両方に追加する必要がある他のコマンドはありますか? (使用シナリオを示す可能性のあるコマンドの包括的なリストはありますか?) MS Tech Net からいくつかのリストを見つけました (https://technet.microsoft.com/ja-jp/library/dd569001%28v=ws.10%29.aspx より) そして (https://technet.microsoft.com/ja-jp/library/dd569089%28v=ws.10%29.aspx より) ですが、データベースではなく Web ファイルと構成のみを転送するという私の特定のニーズでの使用方法については確信が持てませんでした。

ご提案があればぜひお願いします。

答え1

パスワードが必要な理由が分かりました。(知らない人のためにどうやって、下部にコマンドラインの例を示しました。

上の例の1つによると、このページでは、encryptPassword引数は のオプションでありarchiveDir、IIS 構成内の暗号化されたデータ (パスワードなど) を取得し、それらを暗号化して (指定されたパスワードを使用して) アーカイブに保存します。関連する 3 つの例はすべてすぐに消えてしまう可能性があるため、以下に抜粋を示します。

  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 を使用しているため、指定された「場所」は、セキュリティで保護されたデータが配置されている XML 要素を参照する XPath 式です。問題の 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 despair reclining unicycle marbling aim petted」。また、次のような意味不明なエラー メッセージも表示されます。

エラー: プロバイダー 'archivedir' は 'encryptPassword=exfoliate vitalize despair reclining unicycle marbling aim petted' 設定をサポートしていません。サポートされている設定は (authType、computerName、encryptPassword、includeAcls、password、prefetchPayload、userName、wmsvc) です。

スペースが気に入らなかったようです。代わりにハイフンを使用したらうまくいきました。(いいえ、このパスワードは使用していません ;-)

関連情報