MS Webdeploy V3 encryptPassword korrekte Verwendung

MS Webdeploy V3 encryptPassword korrekte Verwendung

Ich habe MS Webdeploy (Version 3.5) sowohl auf meinem („alten“) Server 2003/IIS6 als auch auf meinem („neuen“) Server 2012/IIS8 installiert. Derzeit folge ich den Richtlinien in diesem Artikel und sichere den Zielserver, bevor ich ihn vom „alten“ auf den „neuen“ Server übertrage. Auf diese Weise habe ich erfolgreich gesichert:

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

Ich bereite mich auch darauf vor, auf diese Weise eine Sicherung durchzuführen (siehe unten).

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

Ich habe es auf diese Weise erfolgreich gesichert, obwohl in einem Beitrag (Backup aller Websites mit MSDeploy), wird empfohlen, dass „der encryptPassword-[Befehl] erforderlich ist, wenn Sie SSL-Zertifikate haben.“
Da ich mit Zertifikaten nicht vertraut bin, welches Passwort würde in diesem Parameter enthalten sein?

Gibt es außerdem, während ich die Übertragung vorbereite, andere Befehle, die ich möglicherweise entweder zu meinem Backup oder zu meiner Übertragung hinzufügen muss? (Gibt es eine umfassende Liste von Befehlen, die die Anwendungsszenarien angeben könnten?) Ich habe einige Listen von MS Tech Net gefunden (https://technet.microsoft.com/en-us/library/dd569001%28v=ws.10%29.aspx) Und (https://technet.microsoft.com/en-us/library/dd569089%28v=ws.10%29.aspx), aber ich war mir hinsichtlich der Verwendung für meinen speziellen Bedarf nicht ganz sicher, da es sich nur um die Übertragung von Webdateien und -konfigurationen, nicht aber um eine Datenbank handelt.

Vielen Dank für alle Vorschläge.

Antwort1

Nun, ich habe gerade gelernt, warum man ein Passwort braucht. (Für diejenigen, die es nicht wissenWie, ich habe unten eine Beispiel-Befehlszeile gezeigt.)

Nach einem der Beispiele aufdiese Seite, das encryptPasswordArgument ist eine Option zu archiveDir, und es nimmt alle verschlüsselten Daten in der IIS-Konfiguration (z. B. Passwörter) und speichert sie verschlüsselt (mit dem angegebenen Passwort) im Archiv. Hier ist ein Auszug aller drei relevanten Beispiele, da sie bald verschwinden könnten:

  1. Archivieren Sie die Metabasis und geben Sie ein Verschlüsselungskennwort an.

    msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey
    
  2. Zeigen Sie das Archiv an. Die Passwörter werden verschlüsselt angezeigt.

    msdeploy -verb:dump -source:archivedir=c:\mydir
    
  3. Verwenden Sie zum Anzeigen des Archivs das zuvor angegebene Passwort. Die Passwörter werden im Klartext angezeigt.

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

Wenn ich das richtig verstehe, werden diese Informationen für eine Live-Site mit dem Maschinenschlüssel der Box verschlüsselt, auf der IIS läuft. msdeploy muss diese Informationen zwangsläufig entschlüsseln, da der Maschinenschlüssel auf der neuen Maschine anders sein wird. Sie müssen also Ihr eigenes Passwort wählen, um ein Archiv zu erstellen, das unabhängig von der Originalbox oder der Box ist, von der aus Sie msdeploy ausführen.

Beispiel

In meinem Fall wusste ich, dass ich diese Option angeben musste, da msdeploy sich weigerte, das Archiv fertig zu erstellen und mit einem Fehler wie dem folgenden beendet wurde (Hervorhebung hinzugefügt):

Fehler: Die Eigenschaft „Passwort“befindet sich unter '/webServer/appHostConfig[@path='']/location[@path='']/section[@name='system.applicationHost/applicationPools']/applicationPools/add[@name='NameOfAppPool']/process Model'ist als sicher markiert. Sie müssen ein Verschlüsselungskennwort angeben, um diese Eigenschaft zu archivieren.

Da ich IIS 7 verwende, ist der angegebene „Speicherort“ ein XPath-Ausdruck, der auf das XML-Element verweist, in dem sich das sichere Datum befindet. Ich habe richtig vermutet, dass es sich bei der fraglichen XML-Datei um handelte C:\Windows\System32\inetsrv\config\applicationHost.config, und hier war die fragliche Zeile:

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

Tatsächlich enthält die Zeile ein Kennwortattribut, das ich nicht im Klartext speichern möchte.

Wie

So geben Sie ein Verschlüsselungskennwort für msdeploy an:

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

Sie können es auch verwenden -source:archivedir=c:\mydir,encryptPassword=MyPassKey, wenn Sie die verschlüsselten Daten entschlüsseln müssen.

Vorbehalt

Aber seien Sie vorsichtig. Mir ist aufgefallen, dass encryptPasswordein beliebiges Passwort wie dieses nicht akzeptiert wird: „exfoliate vitalize despair reclining unicycle marbling aim petted“. Es wird auch eine nicht schlüssige Fehlermeldung ausgegeben:

Fehler: Der Anbieter „archivedir“ unterstützt die Einstellung „encryptPassword=exfoliate vitalize despair reclining unicycle marbling aim petted“ nicht. Unterstützte Einstellungen sind (authType, computerName, encryptPassword, includeAcls, password, prefetchPayload, userName, wmsvc).

Ich glaube, die Leerzeichen haben ihm nicht gefallen. Als ich stattdessen Bindestriche verwendet habe, hat es funktioniert. (Nein, ich habe dieses Passwort nicht verwendet ;-)

verwandte Informationen