¿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.
| Nota |
|---|
| Por motivos de seguridad, se recomienda conectarnos únicamente a servidores con certificados válidos |
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
Bloque de código 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
Bloque de código 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
Bloque de código REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SSLCertificateSHA1Hash
Reiniciamos el servicio Servicios de Escritorio remoto.
Bloque de código sc stop "Termservice" sc start "Termservice"
...
| Info |
|---|
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:
| Bloque de código |
|---|
openssl s_client -connect miservidor:3389 | openssl x509 -noout -text |
| Incluir página | ||||
|---|---|---|---|---|
|
