Comprender y solucionar el error del certificado WinRM
Descripción del error
This error occurs when you attempt to establish a remote connection via Windows Remote Management (WinRM) using HTTPS, but the SSL/TLS certificate used to secure the connection fails validation. The WinRM client is highly strict about identity verification.
El error resalta un fallo específico de la arquitectura del certificado:
- Missing DNS Name: The certificate lacks a valid routing identifier (like the hostname or Fully Qualified Domain Name) inside the Subject Name - ¿ Qué ? Subject Alternative Name (SAN) los campos.
- Presence of a UPN: El certificado incluye erróneamente un User Principal Name (UPN) (por ejemplo,
user@domain.com), lo que indica que se emitió para la autenticación del usuario en lugar de la autenticación del ordenador/host.
WinRM requiere un certificado de máquina dedicado para verificar que la computadora remota es exactamente quien dice ser antes de pasar credenciales confidenciales.
Corrección paso a paso: Generar y vincular un certificado válido
Para solucionar este problema, debe generar un certificado de computadora compatible y vincularlo al oyente WinRM HTTPS. Siga estos pasos exactos en la máquina remota de destino.
Paso 1: Abra PowerShell como Administrador
- Presiona el... Windows Key en su teclado.
- ¿ Qué tipo ? PowerShell.
- pulsa con el botón derecho. Windows PowerShell de los resultados.
- Selecciona Run as administrator.
Paso 2: Crear un certificado autofirmado conforme
Ejecute el siguiente comando para crear un certificado que utilice explícitamente el nombre de dominio totalmente calificado (FQDN) del ordenador en el campo Sujeto y asegure que no se adjunta UPN.
New-SelfSignedCertificate -DnsName \(env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My -Subject\)env:COMPUTERNAME
Anota el Thumbprint la cadena se muestra en la salida. Lo necesitará para los próximos pasos.
Paso 3: Elimina el WinRM HTTPS Listener que está roto
Si previamente intentó configurar WinRM HTTPS, es posible que un oyente no válido esté bloqueando el puerto.
Remove-Item -Path WSMan:\Localhost\Listener\* -Recurse -ErrorAction SilentlyContinue
Paso 4: Crear un nuevo oyente WinRM HTTPS con el certificado válido
Reemplazar. YOUR_CERTIFICATE_THUMBPRINT con la cadena que copió del paso 2, luego ejecute el comando:
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT"
Paso 5: Abra el puerto 5986 en el firewall de Windows
El tráfico HTTPS de WinRM se comunica a través del puerto 5986. Asegúrese de que su firewall permita este tráfico ejecutando:
New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "WinRM_HTTPS" -Profile Any -LocalPort 5986 -Protocol TCP -Action Allow -Direction Inbound
Paso 6: Verifique la configuración
Compruebe si el escuchador está activo y configurado correctamente con los parámetros de su nuevo certificado:
winrm enumerate winrm/config/listener
Busca la entrada donde Transport = HTTPS Ahora puede intentar con seguridad su conexión remota desde la máquina cliente.
ERROR_WSMAN_CLIENT_CREDENTIALS_FOR_DEFAULT_AUTHENTICATION | ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED | ERROR_WSMAN_CREATESHELL_NULL_ENVIRONMENT_VARIABLE_NAME | ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMIDPuede haber algunos errores.. Learn Microsoft