Comprendre et corriger une erreur de certificat WinRM
Description de l'erreur
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.
L'erreur met en évidence une défaillance spécifique de l'architecture du certificat:
- Missing DNS Name: The certificate lacks a valid routing identifier (like the hostname or Fully Qualified Domain Name) inside the Subject Name ou... Subject Alternative Name (SAN) les champs.
- Presence of a UPN: Le certificat comporte par erreur un User Principal Name (UPN) (par exemple,
user@domain.com), ce qui indique qu'il a été émis pour l'authentification de l'utilisateur plutôt que pour l'authentification de l'ordinateur ou de l'hôte.
WinRM nécessite un certificat de machine dédié pour vérifier que l'ordinateur distant est exactement celui qu'il prétend être avant de passer des informations d'identification sensibles.
Correction étape par étape: Générer et lier un certificat valide
Pour résoudre ce problème, vous devez générer un certificat d'ordinateur compatible et le lier à l'écoutant WinRM HTTPS.
Étape 1: ouvrir PowerShell en tant qu'administrateur
- Appuie sur le... Windows Key sur votre clavier.
- Quel type ? PowerShell.
- Cliquez avec le bouton droit. Windows PowerShell des résultats.
- Sélectionnez Run as administrator.
Étape 2: Créer un certificat auto-signé conforme
Exécutez la commande suivante pour créer un certificat qui utilise explicitement le nom de domaine entièrement qualifié (FQDN) de l'ordinateur dans le champ Sujet et s'assure qu'aucun UPN n'est joint.
New-SelfSignedCertificate -DnsName \(env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My -Subject\)env:COMPUTERNAME
Notez le... Thumbprint Vous en aurez besoin pour les prochaines étapes.
Étape 3: Supprimer l'écoutant HTTPS WinRM brisé existant
Si vous avez déjà essayé de configurer WinRM HTTPS, un auditeur invalide pourrait bloquer le port.
Remove-Item -Path WSMan:\Localhost\Listener\* -Recurse -ErrorAction SilentlyContinue
Étape 4: Créer un nouvel auditeur WinRM HTTPS avec le certificat valide
Remplacez. YOUR_CERTIFICATE_THUMBPRINT avec la chaîne que vous avez copiée à partir de l'étape 2, puis exécutez la commande:
New-Item -Path WSMan:\LocalHost\Listener -Transport HTTPS -Address * -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT"
Étape 5: ouvrir le port 5986 dans le pare-feu Windows
Le trafic HTTPS WinRM communique sur le port 5986. Assurez-vous que votre pare-feu autorise ce trafic en exécutant:
New-NetFirewallRule -DisplayName "Windows Remote Management (HTTPS-In)" -Name "WinRM_HTTPS" -Profile Any -LocalPort 5986 -Protocol TCP -Action Allow -Direction Inbound
Étape 6: Vérifiez la configuration
Vérifiez si l'écoutant est actif et correctement configuré avec vos nouveaux paramètres de certificat:
winrm enumerate winrm/config/listener
Cherchez l' entrée où Transport = HTTPS Vous pouvez maintenant tenter en toute sécurité votre connexion à distance depuis l'ordinateur client.
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_STREAMIDIl y a peut-être des erreurs.. Learn Microsoft