¿Configurar un certificado SSL personalizado para RDP en Windows Server 2012 (y posterior) en el modo de administración remota?

Pregunta:

Por lo tanto, el lanzamiento de Windows Server 2012 ha eliminado muchas de las antiguas utilidades de configuración relacionadas con el Escritorio remoto. En particular, no hay más utilidad de configuración de host de sesión de escritorio remoto que le dio acceso al cuadro de diálogo de propiedades de RDP-Tcp que le permite configurar un certificado personalizado para que lo utilice el RDSH. En su lugar, hay una nueva GUI consolidada que es parte del flujo de trabajo general de "editar propiedades de implementación" en el nuevo Administrador del servidor. El problema es que solo obtiene acceso a ese flujo de trabajo si tiene instalada la función de Servicios de escritorio remoto (hasta donde yo sé).

Esto parece un descuido por parte de Microsoft. ¿Cómo podemos configurar un certificado SSL personalizado para RDP en Windows Server 2012 cuando se ejecuta en el modo de administración remota predeterminado sin instalar innecesariamente la función de Servicios de escritorio remoto?

Respuesta:

Resulta que muchos de los datos de configuración para RDSH se almacenan en la clase Win32_TSGeneralSetting en WMI en el espacio de nombres root\cimv2\TerminalServices . El certificado configurado para una conexión determinada está referenciado por el valor de huella digital de ese certificado en una propiedad llamada SSLCertificateSHA1Hash .


ACTUALIZACIÓN: Aquí hay una solución Powershell generalizada que toma y establece la huella digital del primer certificado SSL en la tienda personal de la computadora. Si su sistema tiene varios certificados, debe agregar una opción -Filter al comando gci para asegurarse de hacer referencia al certificado correcto. Dejé mi respuesta original intacta debajo de esto como referencia.

# get a reference to the config instance
$tsgs = gwmi -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"

# grab the thumbprint of the first SSL cert in the computer store
$thumb = (gci -path cert:/LocalMachine/My | select -first 1).Thumbprint

# set the new thumbprint value
swmi -path $tsgs.__path -argument @{SSLCertificateSHA1Hash="$thumb"}

Para obtener el valor de la huella digital

  1. Abra el cuadro de diálogo de propiedades de su certificado y seleccione la pestaña Detalles
  2. Desplácese hacia abajo hasta el campo Huella digital y copie la cadena hexadecimal delimitada por espacios en algo como el Bloc de notas
  3. Elimina todos los espacios de la cuerda. También querrá tener cuidado y eliminar un carácter no ASCII que a veces se copia justo antes del primer carácter de la cadena. No es visible en el Bloc de notas.
  4. Este es el valor que necesita establecer en WMI. Debería verse algo así: 1ea1fd5b25b8c327be2c4e4852263efdb4d16af4 .

Ahora que tiene el valor de la huella digital, aquí hay una sola línea que puede usar para establecer el valor usando wmic:

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"

O si PowerShell es lo tuyo, puedes usar esto en su lugar:

$path = (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="THUMBPRINT"}

Nota: el certificado debe estar en el almacén de certificados "personal" para la cuenta de la computadora.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım