none
Zertifikat Fehler in WinRM, VMM - Failover Cluster Host RRS feed

  • Allgemeine Diskussion

  • Nach dem Entfernen und Hinzufügen eines Clusterknoten (Host) läßt sich der logische Switch nicht wieder hinzufügen (WinRM Fehler 2912)

    Folgende Test wurden durchgeführt:

    winrm id -r:Host           OK

    netstat -an:   WinRM lauscht am Port 5985

    PS C:\> winrm get winrm/config/client/auth     All true

    GPO "Allow delegating fresh credentials"     enabled

    Auch ein Query über wbemtest zeigt keinen Fehler.

    Service Test auf VMM Server  OK:
    Get-Service | Where-Object {($_.Name -eq 'scvmmservice') -or ($_.Name -eq 'winrm') -or ($_.Name -eq 'scvmmagent')}

    Service Test auf Host   OK:
    Get-Service | Where-Object {($_.Name -eq 'scvmmagent') -or ($_.Name -eq 'vmms') -or ($_.Name -eq 'winrm')}

    CredSSP Test in beide Richtungen ist OK  (VMM <--> Host )Invoke-Command { Write-Host "hello, world" } -computername HOST -credential $testCred  -Authentication credssp         

    LISTENING Ports gestestet:

    VMM Server:
    svchost.exe   443            LISTENING
    svchost.exe   5985          LISTENING
    Host:
    svchost.exe   5985          LISTENING

    CredSSP Authorisation Fehler im Microsoft Network Monitor Trace erkennbar:

    vmmservice.exe  VMM-Server Host HTTP   HTTP:Request, POST /wsman , Using CredSSP Authorization
    vmmservice.exe  Host VMM-Server HTTP HTTP:Response, HTTP/1.1, Status: Unauthorized, URL: /wsman  

    Zertifikate Thumbprints auf VMM und Host sind nicht identisch!

    Wie kann man herausfinden, ob der Fehler wirklich an den Zertifikaten liegt?

    Wie korrigiert man einen Zertifikatfehler im Cluster und SCVMM?

    Wie entstehen deratige Zertifikatfehler zwischen VMM und Host?

    Freitag, 24. Juli 2015 07:50

Alle Antworten

  • Hallo zusammen,
    über den folgenden Befehl konnte ich herausfinden, dass der Port 433 nicht an das SCVMM_CERTIFICATE_KEY_CONTAINER.. Zertifikat, sondern an das MSSQL2012_cert2014.. Zertifikat gebunden ist.

    netsh http show sslcert

    SSL Certificate bindings:
    -------------------------

        IP:port                      : 0.0.0.0:5985
        Certificate Hash             : 8a75ff6a5cd59e3b474a5f486b768bfafbbb1790
        Application ID               : {00000000-0000-0000-0000-000000000000}
        Certificate Store Name       : MY
        ...

        IP:port                      : 0.0.0.0:8101
        Certificate Hash             : 8a75ff6a5cd59e3b474a5f486b768bfafbbb1790
        Application ID               : {00000000-0000-0000-0000-000000000000}
        Certificate Store Name       : MY
        ...

        IP:port                      : VMM-Server:443
        Certificate Hash             : 3dfd6f66e9d9fe95d2acd31ab416a7fe1c7b471a
        Application ID               : {ba195980-cd49-458b-9e23-c84ee0adcd75}
        Certificate Store Name       : (null)
        ...

        IP:port                      : [::]:5985
        Certificate Hash             : 8a75ff6a5cd59e3b474a5f486b768bfafbbb1790
        Application ID               : {00000000-0000-0000-0000-000000000000}
        Certificate Store Name       : MY
        ...

        IP:port                      : [::]:8101
        Certificate Hash             : 8a75ff6a5cd59e3b474a5f486b768bfafbbb1790
        Application ID               : {00000000-0000-0000-0000-000000000000}
        Certificate Store Name       : MY
        ...


    Das SCVMM_CERTIFICATE_KEY_CONTAINER.. Zertifikat befindet sich in:
    PS C:\> Get-ChildItem -Recurse cert:\ | Where-Object {$_.Thumbprint -like '8a75ff*'} | fl *

    PSPath                   : Microsoft.PowerShell.Security\Certificate::CurrentUser\TrustedPeople\8A75FF6A5CD59E3B474A5F486B768BFAFBBB1790
    PSPath                   : Microsoft.PowerShell.Security\Certificate::LocalMachine\TrustedPeople\8A75FF6A5CD59E3B474A5F486B768BFAFBBB1790
    PSPath                   : Microsoft.PowerShell.Security\Certificate::LocalMachine\My\8A75FF6A5CD59E3B474A5F486B768BFAFBBB1790

    und das MSSQL2012_cert2014 Zertifikat befindet sich in:
    PS C:\> Get-ChildItem -Recurse cert:\ | Where-Object {$_.Thumbprint -like '3dfd*'} | fl *

    PSPath                   : Microsoft.PowerShell.Security\Certificate::CurrentUser\Root\3DFD6F66E9D9FE95D2ACD31AB416A7FE1C7B471A
    PSPath                   : Microsoft.PowerShell.Security\Certificate::LocalMachine\Root\3DFD6F66E9D9FE95D2ACD31AB416A7FE1C7B471A
    PSPath                   : Microsoft.PowerShell.Security\Certificate::LocalMachine\My\3DFD6F66E9D9FE95D2ACD31AB416A7FE1C7B471A

    Im Ereignisprotokoll erscheint bei jedem Versuch ein Eintrag von Source: Schannel mit der Event-ID: 36869
    The SSL server credential's certificate does not have a private key information property attached to it. This most often occurs when a certificate is backed up incorrectly and then later restored. This message can also indicate a certificate enrollment failure.

    Über Hinweise wie man diesen Fehler wieder beseitigen kann, würde ich mich sehr freuen.
    Montag, 27. Juli 2015 11:05
  • Hi,

    eventuell könnte das Ändern des BITS Ports auf dem VMM Management Server helfen. Standardmäßig läuft dieser auf Port 443.

    -> http://www.danielstechblog.de/system-center-2012-r2-virtual-machine-manager-ndern-des-bits-ports/

    Anderenfalls könnte ein VMM Trace helfen, an welcher Stelle genau der VMM bei der Kommunikation ein Problem hat.

    -> https://support.microsoft.com/en-us/kb/2913445


    Best regards Daniel Neumann - This posting is provided AS IS with no warranties, and confers no rights.

    Montag, 27. Juli 2015 17:57
  • Hallo Daniel,

    vielen Dank für den richtigen Hinweis.

    Ich hatte in der Zwischenzeit den Public Key des MSSQL2012_cert2014 auf einen Host importiert. Danach waren die WinRM Kommunikationprobleme zwischen VMM und Host verschwunden.

    Jetzt sind für mich noch folgende Fragen offen:

    1. Welche Nachteile hat es, wenn ich den Port 443 gleichzeitig für den MSSQL2012 und Bits verwende und den Public Key auf die Hosts importiere?
    2. Sollte ich stattdessen lieber den Port von 443 auf 8500 umstellen?
    3. Warum hat sich die Zertifikat Bindung für Port 443 geändert? (Upgrade VMM?, Update MSSQL?, ....) Bei der Einrichtung des Clusters hatte ich keine derartigen Probleme.
    4. Wie hätte man den Fehler schneller finden können. Ich habe relativ viele Stunden für die Fehlersuche verbraucht. Wie kann man herausfinden, dass das falsche Zertifikat verwendet wird? Könnte man da nicht einen Selbsttest (Validierung) im VMM integrieren?

    Gruss

    ITPIT

    Dienstag, 28. Juli 2015 06:34
  • Hi,

    Punkt 1: Im schlimmsten Falle können VM Deployments fehlschlagen etc.

    Punkt 2: Als Best Practice empfehle ich immer den Port umzustellen. Entweder gleich bei der Installation oder im Nachhinein.

    Punkt 3: Fällt mir leider nichts dazu ein, da ich den Fall noch nicht hatte. Laufen die SQL Reporting Services mit auf der SQL Instanz auf dem VMM Management Server?

    Punkt 4: Der VMM Trace hätte wahrscheinlich schnell darüber Aufschluss gegeben.


    Best regards Daniel Neumann - This posting is provided AS IS with no warranties, and confers no rights.

    Dienstag, 28. Juli 2015 13:52
  • Hallo, 

    ich hatte den Fehler neulich bei einem Kunden von mir. Bei uns war der Agent auf dem Host defekt. Einfachste Lösung war den VMM Agent auf dem Host deinstallieren. Den Agent von der original VMM Installations CD/ISO installieren und dann den Host wieder in VMM aufnehmen bzw. reassozieren wenn er im VMM noch auftaucht. 

    Beste Grüße, 

    Flo


    Dienstag, 28. Juli 2015 14:52
  • Hallo Flo,

    die Agents habe ich auf allen Host manuell geupdatet, da das Zertifikatproblem am Port 443 auch dies verhindert hat. Im Gegensatz zu Dir habe ich jedoch die neueste Agent Version vom VMM Server auf die Hosts kopiert und dort manuell installiert.

    beste Grüße zurück

    ITPit

    Mittwoch, 29. Juli 2015 05:33
  • Hallo zusammen,

    ich habe gestern das Update Rollup 7 für den SCVMM installiert und wollte danach die neuen Agents per "Update Agent" vom VMM aus updaten. Als Fehlermeldung bekommen ich die 2941 mit dem Hinweis, dass der Agent auf dem VMM Server nicht erreichbar ist. Der VMM Trace hilft mir nicht weiter, da ich ich in der Menge der Informationen nichts für mich Verständliches finde. Der Bits Port steht z.Z. auf 8500. Aber auch mit 443 klappt es nicht mehr. Muss man nach der Bits Portumstellung das Certificat binding per netsh http umstellen?

    Wenn ich den Bits Port (BITSTcpPort) für den SCVMM in der Registry auf Port 8500 ändere und die Dienste neue starte, sehe ich trotzdem keinen Eintrag mit netstat -an | find "8500".   Der "System Center Virtual Machine Manager" startet auch nach einem Reboot nicht mehr selbständig und muss immer erst per Hand neu gestartet werden.

    Ich habe den VMM Server auf unseren DPM Server installiert. Die Reporting Service laufen auch auf dem Server. Vielleicht war dies mein Fehler, aber bei der Installation gab es keinen Hinweis, dass dies zu Problemen führt.

    Kennt jemand eine Anleitung wie man alle Vorraussetzungen für den VMM wie z.B. die Zertifikat Bindung, "netsh http show urlacl", usw. prüft und korrigiert. Am besten wäre natürlich ein Tool oder Powershell Script, was dies automatisch durchführt.

    Donnerstag, 30. Juli 2015 08:19
  • Auch wenn es supported ist DPM und VMM auf einem Server zu betreiben würde ich beide grundsätzlich trennen. Des Weiteren direkt bei der VMM Installation darauf achten, dass der VMM Library/BITS Port von 443 auf 8500 geändert wird.

    In diesem Falle würde sich eine Neuinstallation des VMM mit beibehalten der Datenbank auf einen anderen Server lohnen. Das klappt allerdings nur wenn man für das DKM Management das Active Directory verwendet. Hat man die lokale Option ausgewählt, so muss der VMM wieder auf demselben Server installiert werden.

    By the way wenn du den Port auf 8500 geändert hast auf dem VMM Management Server, dann müssen natürlich noch die Firewallregeln auf den Hyper-V Hosts entsprechend angepasst werden. Da wird ansonsten nur 443 eingehend erlaubt sein.

    PS. Ich habe beim SCVMM noch nie, auch nach Umstellen des Ports auf 8500 nach einer Installation, netsh http verwendet.


    Best regards Daniel Neumann - This posting is provided AS IS with no warranties, and confers no rights.


    Donnerstag, 30. Juli 2015 16:13