Compartir a través de


Forzar servicios de Escritorio remoto en Windows 7 para usar un certificado de autenticación de servidor personalizado para TLS

En este artículo se proporciona una solución a un problema por el que se genera automáticamente un certificado de autenticación de servidor autofirmado para admitir la seguridad de la capa de transporte (TLS) al realizar una conexión de Servicios de Escritorio remoto (RDS) a un equipo con Windows 7.

Se aplica a: Windows 7 Service Pack 1
Número de KB original: 2001849

Síntomas

Al realizar una conexión RDS a un equipo con Windows 7, se genera automáticamente un certificado de autenticación de servidor autofirmado para admitir TLS. Esto permite cifrar los datos entre equipos. Los datos solo se cifran cuando la siguiente configuración de directiva de grupo está habilitada en el equipo de destino y se establece en SSL (TLS 1.0):

Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Security:Require use of specific security layer for remote (RDP) connections

Causa

La generación de certificados autofirmados para TLS a través de una conexión RDS está habilitada por diseño en Windows Vista y Windows 7.

Solución

Los certificados de autenticación de servidor se admiten en Windows Vista y Windows 7. Para usar un certificado personalizado para RDS, siga estos pasos:

  1. Instale un certificado de autenticación de servidor desde una entidad de certificación.

  2. Cree el siguiente valor del Registro que contiene el hash SHA1 del certificado para configurar este certificado personalizado para admitir TLS en lugar de usar el certificado autofirmado predeterminado.

    • Ubicación: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    • Nombre del valor: SSLCertificateSHA1Hash
    • Tipo de valor: REG_BINARY
    • Datos de valor: <huella digital del certificado>

    El valor debe ser la huella digital del certificado separado por comas (,) y sin espacios vacíos. Por ejemplo, si fuera a exportar esa clave del Registro, el valor SSLCertificateSHA1Hash tendría este aspecto:

    SSLCertificateSHA1Hash=hex:42,49,e1,6e,0a,f0,a0,2e,63,c4,5c,93,fd,52,ad,09,27,82,1b,01

    Es necesario editar el registro directamente porque no hay ninguna interfaz de usuario en las SKU de cliente de Windows para configurar un certificado de servidor.

  3. El servicio servicios host de Escritorio remoto se ejecuta en la cuenta DE SERVICIO DE RED. Por lo tanto, es necesario establecer la ACL del archivo de clave utilizado por RDS (al que hace referencia el certificado denominado en el valor del registro SSLCertificateSHA1Hash) para incluir NETWORK SERVICE con permisos de lectura. Para modificar los permisos, siga estos pasos:

    Abra el complemento Certificados para el equipo local:

    1. Haga clic en Inicio, haga clic en Ejecutar, escriba mmc y haga clic en Aceptar.
    2. En el menú Archivo , haga clic en Agregar o quitar complemento.
    3. En el cuadro de diálogo Agregar o quitar complementos , en la lista Complementos disponibles, haga clic en Certificados y en Agregar.
    4. En el cuadro de diálogo Complemento Certificados , haga clic en Cuenta de equipo y haga clic en Siguiente.
    5. En el cuadro de diálogo Seleccionar equipo , haga clic en Equipo local: (el equipo en el que se ejecuta esta consola) y haga clic en Finalizar.
    6. En el cuadro de diálogo Agregar o quitar complementos , haga clic en Aceptar.
    7. En el complemento Certificados , en el árbol de consola, expanda Certificados (equipo local), expanda Personal y vaya al certificado SSL que desea usar.
    8. Haga clic con el botón derecho en el certificado, seleccione Todas las tareas y seleccione Administrar claves privadas.
    9. En el cuadro de diálogo Permisos , haga clic en Agregar, escriba NETWORK SERVICE, haga clic en Aceptar, seleccione Leer en la casilla Permitir y, a continuación, haga clic en Aceptar.

Más información

Para obtener más información sobre cómo configurar mediante programación las opciones de cifrado RDP, consulte Win32_TSGeneralSetting clase.