¿Por qué es necesario generar e instalar un certificado para conectarnos remotamente a un equipo?
Al utilizar escritorio remoto para conectarnos a un servidor, si éste no tiene un certificado válido obtendremos la siguiente advertencia;
Este mensaje indica que no se puede comprobar la identidad del servidor al que nos estamos conectando, por lo cabe la posibilidad de que estemos enviando nuestras credenciales a un atacante.
Instalar un certificado para conectarse por escritorio remoto a un servidor windows
Procedimiento general:
- Obtenemos el certificado desde piolín.
- Añadimos la cadena de certificación al fichero .pem. Fichero cadcomodo.pem desde http://www.upv.es/doc/certificado/entregada
Obtenemos el fichero pfs, que incluye la clave privada
openssl pkcs12 -export -in reccues2015.pem -inkey reccues2015.key -out reccues2015.pfs
- Lo importamos en el servidor, desde la consola Certificados(equipo local), lo importamos en carpeta Personal.
- Comprobamos que tiene toda la cadena de certificación.
- Copiamos el hash (huella digital) del certificado.
Windows 2012
Copiamos el hash a la cadena del registro, lo copiamos sin espacios en blanco
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash /t REG_BINARY /d "hash"
Comprobamos que el hash guardado es el correcto
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash
Reiniciamos el servicio Servicios de Escritorio remoto.
sc stop "Termservice" sc start "Termservice"
Con el comando certutil -store my, obtenemos los certificados almacenamos en la carpeta personal del equipo
Para actualizar el registro también se puede utilizar la herramienta gráfica regedit
Comprobar que funciona
Si nos conectamos al servidor desde un cliente windows que esté en el dominio, usará kerberos para cifrar la conexión, y no usará el certificado. Una forma de comprobar que el certificado lo está sirviendo es usar openssl, y verificar que es el instalado en el servidor:
openssl s_client -connect miservidor:3389 | openssl x509 -noout -text