Uso correcto de MS Webdeploy V3 encryptPassword

Uso correcto de MS Webdeploy V3 encryptPassword

He instalado MS Webdeploy (Versión 3.5) tanto en mi ("antiguo") Servidor 2003/IIS6 como en mi ("nuevo") Servidor 2012/IIS8. Actualmente, sigo las pautas del artículo aquí, haciendo una copia de seguridad del servidor de destino antes de transferir del servidor "antiguo" al "nuevo", y he realizado una copia de seguridad exitosa de esta manera:

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

También me estoy preparando para hacer una copia de seguridad de esta manera (abajo).

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

Hice una copia de seguridad de esta manera con éxito, aunque en una publicación (Copia de seguridad de todos los sitios web con MSDeploy), se sugiere que "se requiere el [comando] encryptPassword si tiene certificados SSL".
Como soy nuevo en el mundo de los certificados, ¿qué contraseña se incluiría en ese parámetro?

Además, mientras me preparo para la transferencia, ¿hay otros comandos que pueda necesitar agregar a mi copia de seguridad o a mi transferencia? (¿Existe una lista completa de comandos que puedan indicar los escenarios de uso?) Encontré algunas listas de MS Tech Net (https://technet.microsoft.com/en-us/library/dd569001%28v=ws.10%29.aspx) y (https://technet.microsoft.com/en-us/library/dd569089%28v=ws.10%29.aspx), pero no estaba absolutamente seguro del uso en mi necesidad particular, que es solo transferir archivos web y configuración, no una base de datos.

Muchas gracias por cualquier sugerencia.

Respuesta1

Bueno, acabo de enterarme de por qué necesitas una contraseña. (Para aquellos que no sabencómo, he mostrado una línea de comando de ejemplo en la parte inferior).

Según uno de los ejemplos deesta página, el encryptPasswordargumento es una opción para archiveDiry toma todos los datos cifrados en la configuración de IIS (por ejemplo, contraseñas) y los almacena cifrados (con la contraseña especificada) en el archivo. Aquí hay un extracto de los tres ejemplos relevantes, ya que podrían desaparecer pronto:

  1. Archive la metabase y especifique una contraseña cifrada.

    msdeploy -verb:sync -source:metaKey -dest:archivedir=c:\mydir,encryptPassword=MyPassKey
    
  2. Mostrar el archivo. Las contraseñas se mostrarán en forma cifrada.

    msdeploy -verb:dump -source:archivedir=c:\mydir
    
  3. Utilice la contraseña que especificó anteriormente para mostrar el archivo. Las contraseñas se mostrarán en texto sin formato.

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

Si entiendo correctamente, para un sitio activo esta información se cifra con la clave de la máquina del cuadro en el que se ejecuta IIS. Por necesidad, msdeploy debe descifrar esa información, ya que la clave de la máquina será diferente en la nueva máquina. Por lo tanto, debe elegir su propia contraseña para crear un archivo que sea independiente del cuadro original o del cuadro desde el que está ejecutando msdeploy.

Ejemplo

En mi caso, sabía que necesitaba especificar esta opción ya que msdeploy se negó a terminar de crear el archivo y salió con un error como el siguiente (énfasis añadido):

Error: la propiedad 'contraseña'ubicado en '/webServer/appHostConfig[@path='']/location[@path='']/section[@name='system.applicationHost/applicationPools']/applicationPools/add[@name='NameOfAppPool']/ modelo de proceso'está marcado como seguro. Debe especificar una contraseña de cifrado para archivar esta propiedad.

Como estoy usando IIS 7, la "ubicación" proporcionada es una expresión XPath que se refiere al elemento XML donde se encuentra el dato seguro. Supuse correctamente que el archivo XML en cuestión era C:\Windows\System32\inetsrv\config\applicationHost.config, y aquí estaba la línea en cuestión:

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

Efectivamente, la línea contiene un atributo de contraseña, que no quiero que se almacene en texto sin formato.

Cómo

Así es como se especifica una contraseña cifrada para msdeploy:

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

También puede utilizarlo -source:archivedir=c:\mydir,encryptPassword=MyPassKeycuando necesite descifrar los datos cifrados.

Advertencia

Pero ten cuidado. Me di cuenta de que encryptPasswordno aceptaría una contraseña arbitraria como esta: "exfoliar, vitalizar, desesperación, monociclo reclinado, veteado, objetivo acariciado". También muestra un mensaje de error no secuencial:

Error: El proveedor 'archivedir' no admite la configuración 'encryptPassword=exfoliate vitalize despair monociclo reclinado veteado objetivo acariciado'. Las configuraciones admitidas son (tipo de autenticación, nombre de computadora, contraseña de cifrado, incluirAcls, contraseña, carga útil previa, nombre de usuario, wmsvc).

Creo que no le gustaron los espacios. Cuando usé guiones en su lugar, funcionó. (No, no usé esta contraseña ;-)

información relacionada