Solución:
Puede configurar esta máquina host para usar y presentar su certificado SSL (existente, comprado) verificado externamente por lo tanto (las instrucciones probablemente también funcionen para Windows 8 y 8.1, pueden o no funcionar para Windows 7) (partes de esto basadas en Microsoft KB 2001849):
Primero, debe haber comprado un certificado ssl verificado genuino.
Si tiene este certificado en un archivo de formato pkcs12 (por ejemplo, extensión pfx), puede ver la huella digital SHA1 usando Linux o Cygwin, por lo tanto (lo necesitará a continuación):
openssl pkcs12 -in mysite.pfx -nodes|openssl x509 -noout -fingerprint
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:
sudo openssl pkcs12 -export -out mysite.pfx -inkey /etc/ssl/private/mysite.pem -in /etc/ssl/certs/mysite.crt -certfile /etc/ssl/mysite.ca-bundle
-
Mueva o copie este archivo pfx según sea necesario para que su máquina host de Windows pueda acceder a él.
- Vea la huella digital SHA1 de la clave (la necesitará a continuación):
openssl x509 -in /etc/ssl/certs/mysite.crt -noout -fingerprint
Importe el archivo en formato pkcs12 (por ejemplo, pfx) al almacén de certificados personales de la máquina host de Windows:
- Inicio> Ejecutar> mmc
- Archivo> Agregar Quitar complemento> Certificados> Agregar> Cuenta de computadora> Computadora local> Aceptar
- En la ventana de la izquierda, haga clic con el botón derecho en Certificados (equipo local) Personal, seleccione Todas las tareas / Importar …
- Busque el archivo pfx e impórtelo, le sugiero que por razones de seguridad no lo haga exportable.
- Al expandir su Personal / Certificados, ahora debería ver 3 certificados, uno de los cuales es el certificado de su sitio (por ejemplo, misitio.com). Haga clic con el botón derecho en este certificado de sitio y haga clic con el botón derecho, elija Todas las tareas / Administrar claves privadas …
- Agregue el usuario ‘SERVICIO DE RED’ con permiso de lectura solo (no Control total), luego aplique
- Cerrar mmc
Use regedit para agregar un nuevo valor binario llamado SSLCertificateSHA1Hash en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-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); hay 20 pares hexadecimales 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 realizar una conexión de escritorio remoto a este host usando el nombre del sitio correcto (por ejemplo, mysite.com), debería ver un candado cerrado 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 a través de este host ahora debería pasar la prueba de nombre de host PCI-DSS 3.1.
Estos son los pasos básicos que utilizo:
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:
certutil.exe -p myPassword -importPFX c:mycert.pfx noExport
busque la huella digital del certificado, ya sea en la interfaz de usuario o en PowerShell:
$tp = (ls Cert:LocalMachinemy | WHERE {$_.Subject -match "something unique in your certs subject field" } | Select -First 1).Thumbprint
ahora dile a Escritorio remoto que use ese certificado:
& wmic /namespace:\rootCIMV2TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="$tp"
no es necesario reiniciar