Tenemos una máquina Windows 10 Pro en nuestra oficina que tiene un puerto abierto a Internet para las conexiones entrantes de escritorio remoto (un "host"). Está bien protegido por una contraseña compleja y un número limitado de intentos permitidos y solo TLS 1.1 o superior, pero no presenta un certificado SSL verificado externamente, solo el certificado autofirmado autofirmado que proporciona Remote Desktop Services, y esto nos da dos problemas:
- No podemos estar completamente seguros cuando nos conectamos de forma remota, realmente nos estamos conectando a esta máquina y no a alguna conexión secuestrada.
- Nuestro sitio falla la verificación de cumplimiento de PCI-DSS 3.1 (requerido porque utilizamos una máquina de tarjeta de débito / crédito en el punto de venta que se conecta a través de Internet). La verificación informa errores fatales en este puerto de escritorio remoto con conexión a Internet: 'Certificado autofirmado SSL' y 'Certificado SSL con nombre de host incorrecto'.
¿Cómo consigo que un equipo con Windows 10 Pro (o Windows 7/8 / 8.1 Pro) actúe como servidor / host para presentar un certificado SSL adecuado para la verificación de Escritorio remoto?
Respuestas:
Puede configurar esta máquina host para usar y presentar su certificado SSL (existente, comprado) verificado externamente (las instrucciones probablemente también funcionen para Windows 8 y 8.1, pueden o no funcionar para Windows 7) (partes de esto basadas en un Microsoft KB 2001849 ):
Primero, debe haber comprado un certificado SSL verificado genuino.
Si tiene este certificado en un archivo de formato pkcs12 (p. Ej., Extensión pfx), puede ver la huella digital SHA1 usando Linux o Cygwin (así lo necesitará a continuación):
Alternativamente, si tiene los archivos de certificado individuales en su servidor Linux en / etc / ssl (/etc/ssl/certs/mysite.crt, /etc/ssl/mysite.ca-bundle y /etc/ssl/private/mysite.key ) puede crear un archivo pfx y obtener la huella digital SHA1 así:
Cree un archivo pfx para su certificado, si aún no tiene uno (aquí: mysite.pfx): establezca una buena contraseña cuando se le solicite:
Mueva o copie este archivo pfx según sea necesario para que su máquina host de Windows pueda acceder a él.
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Importe el archivo de formato pkcs12 (por ejemplo, pfx) en el almacén de certificados personales de la máquina host de Windows:
Use regedit para agregar un nuevo valor binario llamado SSLCertificateSHA1Hash en
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
. El valor que necesita es la huella digital SHA1 del certificado obtenido anteriormente: haga clic con el botón derecho en el nuevo valor, elija Modificar y luego escriba los códigos hexadecimales secuencialmente (sin dos puntos, espacios ni comas, las letras no distinguen entre mayúsculas y minúsculas). 20 pares de maleficios en total (40 caracteres).Es posible que deba reiniciar la máquina host o reiniciar los Servicios de escritorio remoto (desde Services.msc) antes de que funcione.
Ahora, después de hacer una conexión de escritorio remoto a este host usando el nombre de sitio correcto (por ejemplo, mysite.com), debería ver un candado bloqueado en el lado izquierdo de la barra de conexión superior: al hacer clic en esto se muestra que la identidad del control remoto La computadora fue verificada. Un puerto que esté abierto desde Internet hasta este host ahora debe pasar la prueba de nombre de host PCI-DSS 3.1.
fuente
Estos son los pasos básicos que uso:
Obtenga un certificado válido para el host (no tiene que provenir de una CA externa, pero todas sus máquinas deben confiar en él). Asegúrese de que tenga el nombre de host correcto, tuve problemas con los certificados comodín.
Instale el certificado en el host, como:
encuentre la huella digital del certificado, ya sea en la interfaz de usuario o en PowerShell:
ahora dígale a Escritorio remoto que use ese certificado:
no se requiere reiniciar
fuente
Mi cert viene con 2 archivos necesarios,
domain.crt
ydomain.ca-bundle
Y luego tengo a midomain.key
desde la generación de la solicitud.Así es como lo configuré usando una máquina virtual Linux para combinar los certificados y generar la huella digital y el CMD de Windows para configurar el host. Esto permite una secuencia de comandos completa de la configuración.
Las mayores diferencias entre la respuesta mía y @gogoud son:
wmic /namespace:
través de CMD prompt.NETWORK SERVICE
permisos.Haga un directorio para trabajar y mueva los 3 archivos a él:
Crear clave de formato pfx:
Exporte SSLCertificateSHA1Hash / FingerPrint a un archivo TXT:
Importar certificado a Windows (Abrir solicitud CMD elevada):
Esto se puede seguir mediante el modificador "-p MyPassword"
Ahora agregue SSLCertificateSHA1Hash a RDP-Tcp a través de CMD (Aviso de CMD elevado):
Deberá agregar el usuario "Servicio de red" con permisos de "Solo lectura" ahora:
Reiniciar host:
fuente