Felsöka problem med tilläggscertifikat på en virtuell Windows-dator i Azure
Gäller för: ✔️ Virtuella Windows-datorer
I den här artikeln beskrivs hur du identifierar och åtgärdar problem som rör certifikat på en virtuell Windows-dator (VM) som använder ett tillägg. Dessa problem är vanligtvis relaterade till kryptografiska åtgärder eller själva certifikatet.
Checklista för felsökning
Visa gästloggarna
Om du vill få information om ett fel kontrollerar du gästloggarna. De mest användbara loggarna på den virtuella Windows-datorn för felsökning av tilläggscertifikatfel visas i följande tabell.
Loggas | Beskrivning |
---|---|
Loggfilen C:\WindowsAzure\Logs\WaAppAgent.log | Gästagentloggen. Beskriver tilläggets åtgärder (till exempel att ladda ned, installera, aktivera och inaktivera) och deras resultat. |
Loggfiler i mappen C:\WindowsAzure\Logs\Plugins\<ExtensionName> | Olika loggar som återspeglar åtgärderna för ett visst tillägg. Varje tillägg har sina egna funktioner, men de flesta tillägg har en standarduppsättning loggfiler, inklusive CommandExecution.log, CommandExecution_Timestamp>.log, CustomScriptHandler.log och IaaSBcdrExtension<Number>.log.< |
Kommentar
Den här tabellen innehåller bara de mest anmärkningsvärda loggfilerna. Det är inte en omfattande lista.
Du kan också köra verktyget CollectGuestLogs.exe för att samla in alla gästloggar i en .zip arkivfil. Verktyget CollectGuestLogs.exe finns på den virtuella Windows-datorn i någon av följande kataloger:
- C:\WindowsAzure\Packages
- C:\WindowsAzure\GuestAgent_<VersionNumber>_<Timestamp>
Symptom
I följande lista beskrivs de vanligaste felen som kan uppstå när du använder ett tillägg på en virtuell Windows-dator:
FailedToDecryptProtectedSettings
undantag: Det transportcertifikat som används för att dekryptera de skyddade inställningarna för tillägget saknas från den virtuella datorn.Kommentar
En variant av
FailedToDecryptProtectedSettings
undantaget gör att felaktiga behörigheter anges i mappen Crypto\RSA\MachineKeys . I det här scenariot visas ett av följande felmeddelanden:System.Security.Cryptography.CryptographicException: Keyset does not exist at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at Microsoft.Azure.Plugins.Diagnostics.dll.PluginConfigurationSettingsProvider.DecryptPrivateConfig(String encryptedConfig)
Failed to decode, decrypt, and deserialize the protected settings string. Error Message: Keyset does not exist"
Decrypting Protected Settings - Invalid provider type specified
[ERROR] Failed to get TransportCertificate. Error: Microsoft.WindowsAzure.GuestAgent.CertificateManager.CryptographyNative+PInvokeException: Self-signed Certificate Generation failed. Error Code: -2146893808.
Felmeddelandet "Det gick inte att hämta certifikatet".
CryptographicException
undantag i diagnostikinställningarna för den virtuella datorn, tillsammans med meddelandet "Meddelandet enveloped-data innehåller inte den angivna mottagaren". Följande text beskriver ett exempel på det här undantaget:DiagnosticsPluginLauncher.exe Information: 0 : [6/29/2020 1:32:20 PM] Decrypting private configuration DiagnosticsPluginLauncher.exe Warning: 0 : [6/29/2020 1:32:20 PM] No certficate with given thumbprint found in the certificate store. Thumbprint:34C8CDC747693E0E33A9648703E3990EC4F2C484 DiagnosticsPluginLauncher.exe Information: 0 : [6/29/2020 1:32:20 PM] Retrying after 30 seconds. Retry attempt 1 DiagnosticsPluginLauncher.exe Warning: 0 : [6/29/2020 1:32:50 PM] No certficate with given thumbprint found in the certificate store. Thumbprint:34C8CDC747693E0E33A9648703E3990EC4F2C484 DiagnosticsPluginLauncher.exe Information: 0 : [6/29/2020 1:32:50 PM] Retrying after 30 seconds. Retry attempt 2 DiagnosticsPluginLauncher.exe Warning: 0 : [6/29/2020 1:33:20 PM] No certficate with given thumbprint found in the certificate store. Thumbprint:34C8CDC747693E0E33A9648703E3990EC4F2C484 DiagnosticsPluginLauncher.exe Information: 0 : [6/29/2020 1:33:20 PM] Retrying after 30 seconds. Retry attempt 3 DiagnosticsPluginLauncher.exe Error: 0 : [6/29/2020 1:33:50 PM] System.Security.Cryptography.CryptographicException: The enveloped-data message does not contain the specified recipient. at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at Microsoft.Azure.Plugins.Diagnostics.dll.PluginConfigurationSettingsProvider.DecryptPrivateConfig(String encryptedConfig)
Ett nytt certifikat som skickas till den virtuella datorn, men som stör andra åtgärder.
Orsak: Ändringar av arbetsflödes- och beroendekod
Problemet beror främst på en ändring i Azure-plattformen som implementerades runt maj 2020. Ändringen var att förbättra arbetsflödet för VM-tilläggen och eliminera vissa beroenden för andra Azure-komponenter. Det kräver att tillägg, anpassade resursproviders (CRP: er) och gästagenten fungerar kollektivt. Mindre buggar har orsakat sekundära problem som återspeglas i tilläggscertifikatproblemen.
Lösning 1: Uppdatera tilläggscertifikatet
Följ dessa steg för att uppdatera till ett certifikat som kan användas tillsammans med ett tillägg:
Kontrollera om Certifikatgeneratorcertifikatet för Windows Azure CRP ingår i snapin-modulen Certifikat i Microsoft Management Console. Det gör du genom att följa anvisningarna i Flera certifikat på en virtuell Azure IaaS-dator som använder tillägg för att hitta de virtuella Windows-datorsymptomen .
Ta bort certifikatet. Det gör du genom att välja Certifikatgeneratorcertifikatet för Windows Azure CRP och sedan ikonen Ta bort.
Kommentar
När Certifikatgeneratorcertifikatet för Windows Azure CRP behövs skapar den virtuella datorn certifikatet igen om det saknas.
Utlös ett nytt måltillstånd för gästagenten genom att använda något av följande alternativ:
Kör följande PowerShell-kommandon:
$rg = "<name-of-the-resource-group-containing-the-virtual-machine>" $vmName = "<name-of-the-virtual-machine>" $vm = Get-AzVM -ResourceGroupName $rg -Name $vmName Update-AzVM -ResourceGroupName $rg -VM $vm
Utför en "reapply"-åtgärd på den virtuella datorn genom att följa anvisningarna i avsnittet "Lösning" på den virtuella datorn som fastnat i ett feltillstånd .
Försök utföra tilläggsåtgärden igen.
Om certifikatuppdateringen inte åtgärdade problemet stoppar eller frigör du den virtuella datorn och startar sedan den virtuella datorn igen.
Lösning 2: Åtgärda åtkomstkontrollistan (ACL) i mapparna MachineKeys eller SystemKeys
I mappen Crypto\RSA\MachineKeys korrigerar du åtkomstkontrollistan (ACL) så att rätt behörigheter tillämpas.
I en administrativ PowerShell-konsol kör du följande kommandon för att hämta det unika nyckelcontainernamnet för klientcertifikatet. Se till att du kommenterar ut en av
$certName
definitionerna, beroende på om du använder en klassisk virtuell RedDog Front End-dator (RDFE) (för vilken certifikatnamnet ärWindows Azure Service Management for Extensions
) eller en virtuell Azure Resource Manager-dator (för vilken certifikatnamnet ärWindows Azure CRP Certificate Generator
):# Comment out one of the following certificate name definitions. $certName = "Windows Azure Service Management for Extensions" # Classic RDFE VM $certName = "Windows Azure CRP Certificate Generator" # Azure Resource Manager VM $fileName = (Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -eq 'DC=$certName'} ).PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
Gör en säkerhetskopia av ACL genom att köra icacls-kommandot :
icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /save machinekeys_permissions_before.aclfile /t
Kör följande
icacls
kommandon för att korrigera MachineKeys-behörigheterna :icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$fileName /grant SYSTEM:(F) icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$fileName /grant Administrators:(RX)
Kör
icacls
igen för att omdirigera uppdaterade MachineKeys-ACL :er till en textfil:icacls C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys /t > machinekeys_permissions_after.txt
Visa filen machinekeys_permissions_after.txt i en textredigerare för att kontrollera att behörighetsändringarna visas som förväntat.
Försök med tillägget igen eller försök att starta om gästagenttjänsterna genom att köra verktyget WaAppAgent.exe eller WindowsAzureGuestAgent.exe .
Om den här proceduren inte fungerar kan du försöka köra icacls
kommandona igen (steg 2–4) på mapparna C:\ProgramData\Microsoft\Crypto\SystemKeys\* i stället för mappen C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\$fileName .
Mer information
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.