Uso correto do MS Webdeploy V3 encryptPassword

Uso correto do MS Webdeploy V3 encryptPassword

Instalei o MS Webdeploy (versão 3.5) no meu ("antigo") Server 2003/IIS6 e no ("novo") Server 2012/IIS8. Atualmente, estou seguindo as diretrizes do artigo aqui, fazendo backup do servidor de destino antes de transferir do servidor "antigo" para o "novo", e fiz backup com êxito desta maneira:

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

Estou me preparando para fazer backup desta forma também (abaixo).

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

Eu fiz backup dessa forma com sucesso, embora em uma postagem, (Backup de todos os sites com MSDeploy), sugere-se que "o [comando] encryptPassword seja necessário se você tiver certificados SSL".
Como sou novo em certificados, qual senha seria incluída nesse parâmetro?

Além disso, enquanto me preparo para a transferência, há outros comandos que eu possa precisar adicionar ao meu backup ou à minha transferência? (Existe uma lista abrangente de comandos que podem indicar os cenários de uso?) Encontrei algumas listas do MS Tech Net (https://technet.microsoft.com/en-us/library/dd569001%28v=ws.10%29.aspx) e (https://technet.microsoft.com/en-us/library/dd569089%28v=ws.10%29.aspx), mas não tinha certeza absoluta quanto ao uso em minha necessidade específica, que é apenas transferir arquivos e configurações da web, não um banco de dados.

Muito obrigado por qualquer sugestão.

Responder1

Bem, acabei de aprender por que você precisa de uma senha. (Para quem não sabecomo, mostrei um exemplo de linha de comando na parte inferior.)

De acordo com um dos exemplosesta página, o encryptPasswordargumento é uma opção para archiveDire pega todos os dados criptografados na configuração do IIS (por exemplo, senhas) e os armazena criptografados (com a senha especificada) no arquivo. Aqui está um trecho dos três exemplos relevantes, já que eles podem desaparecer em breve:

  1. Arquive a metabase e especifique uma senha criptografada.

    msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey
    
  2. Exiba o arquivo. As senhas serão exibidas de forma criptografada.

    msdeploy -verb:dump -source:archivedir=c:\mydir
    
  3. Use a senha especificada anteriormente para exibir o arquivo. As senhas serão exibidas em texto simples.

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

Se bem entendi, para um site ativo, essas informações são criptografadas com a chave da máquina da caixa em que o IIS está sendo executado. Necessariamente, o msdeploy deve descriptografar essas informações, pois a chave da máquina será diferente na nova máquina. Portanto, você deve escolher sua própria senha, para criar um arquivo que seja independente da caixa original ou da caixa a partir da qual você está executando o msdeploy.

Exemplo

No meu caso, eu sabia que precisava especificar esta opção, pois o msdeploy se recusou a terminar a construção do arquivo e saiu com um erro como o seguinte (ênfase adicionada):

Erro: a propriedade 'senha'localizado em '/webServer/appHostConfig[@path='']/location[@path='']/section[@name='system.applicationHost/applicationPools']/applicationPools/add[@name='NameOfAppPool']/ Modelo de processo'está marcado como seguro. Você deve especificar uma senha de criptografia para arquivar esta propriedade.

Como estou usando o IIS 7, o "local" fornecido é uma expressão XPath referente ao elemento XML onde o dado seguro está localizado. Adivinhei corretamente que o arquivo XML em questão era C:\Windows\System32\inetsrv\config\applicationHost.confige aqui estava a linha em questão:

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

Com certeza, a linha contém um atributo de senha, que não quero armazenado em texto simples.

Como

Veja como você especifica uma senha criptografada para msdeploy:

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

Você também pode usar -source:archivedir=c:\mydir,encryptPassword=MyPassKeyquando precisar descriptografar os dados criptografados.

Embargo

Tenha cuidado, no entanto. Percebi que encryptPasswordnão aceitaria arbitrariamente uma senha como esta: “esfoliar vitalizar desespero monociclo reclinado marmorizado mirar acariciado”. Também fornece uma mensagem de erro sem sequência:

Erro: O provedor 'archivedir' não suporta a configuração 'encryptPassword=exfoliate vitalize desespero reclinável uniciclo marmoreado objetivo acariciado'. As configurações suportadas são (authType, computerName, encryptPassword, includeAcls, password, prefetchPayload, userName, wmsvc).

Acho que não gostou dos espaços. Quando usei hífens, funcionou. (Não, eu não usei essa senha ;-)

informação relacionada