Freigeben über


Überprüfen der SSL-Konnektivität für Microsoft Monitoring Agent unter Windows

In diesem Artikel wird erläutert, wie Sie probleme mit der SSL-Konnektivität (Secure Sockets Layer) für den Microsoft Monitoring Agent unter Windows beheben. Es stellt PowerShell-Code bereit, mit dem Sie ssl-Konnektivität vom Agentcomputer zu verschiedenen Azure Log Analytics-Arbeitsbereichen und Azure Automation-Endpunkten überprüfen können. Dieser Code ergänzt das TestCloudConnectivity-Tool , das überprüft, ob physische Netzwerkverbindungen geöffnet sind. Die SSL-Konnektivitätsüberprüfung ist nützlich, um festzustellen, ob filtert wird.

Voraussetzungen

Checkliste zur Problembehandlung

Schritt 1: Implementieren der CheckSSL-Funktion

Der folgende PowerShell-Code definiert und implementiert die Funktion, die CheckSSL eine Verbindung mit einem vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) testet, den Sie angeben. Es zeigt Informationen über den Verbindungsnamen, die Auflösungsdetails und die Verbindung mit dem bereitgestellten Zertifikat an.

Öffnen Sie eine Administrative PowerShell-Konsole, und führen Sie den folgenden Code aus:

# Usage: CheckSSL <fully-qualified-domain-name>
function CheckSSL($fqdn, $port=443) 
{
    try {
        $tcpSocket = New-Object Net.Sockets.TcpClient($fqdn, $port)
    } catch {
        Write-Warning "$($_.Exception.Message) / $fqdn"
        break
    }
    $tcpStream = $tcpSocket.GetStream()
    ""; "-- Target: $fqdn / " + $tcpSocket.Client.RemoteEndPoint.Address.IPAddressToString
    $sslStream = New-Object -TypeName Net.Security.SslStream($tcpStream, $false)
    $sslStream.AuthenticateAsClient($fqdn)  # If not valid, will display "remote certificate is invalid".
    $certinfo = New-Object -TypeName Security.Cryptography.X509Certificates.X509Certificate2(
        $sslStream.RemoteCertificate)

    $sslStream |
        Select-Object |
        Format-List -Property SslProtocol, CipherAlgorithm, HashAlgorithm, KeyExchangeAlgorithm,
            IsAuthenticated, IsEncrypted, IsSigned, CheckCertRevocationStatus
    $certinfo |
        Format-List -Property Subject, Issuer, FriendlyName, NotBefore, NotAfter, Thumbprint
    $certinfo.Extensions |
        Where-Object -FilterScript { $_.Oid.FriendlyName -Like 'subject alt*' } |
        ForEach-Object -Process { $_.Oid.FriendlyName; $_.Format($true) }

    $tcpSocket.Close() 
}

Schritt 2: Verwenden von CheckSSL zum Testen von Endpunktverbindungen

Nachdem Sie die CheckSSL Funktion in PowerShell implementiert haben, können Sie diese Funktion verwenden, um die Konnektivität mit den Endpunkten in Ihrem Azure Log Analytics-Arbeitsbereich und Ihrem Azure Automation-Konto zu überprüfen. Der in diesem Abschnitt bereitgestellte PowerShell-Code ruft für mehrere verschiedene Endpunkte CheckSSL auf.

Da die Endpunkt-URLs häufig Bezeichner für Ihre Arbeitsbereichs- und Automatisierungskonten enthalten, müssen Sie zuerst diese IDs abrufen und sie verschiedenen Platzhaltern im Code hinzufügen.

Abrufen der Log Analytics-Arbeitsbereichs-ID

So rufen Sie die ID Ihres Log Analytics-Arbeitsbereichs ab:

  1. Suchen Sie im Azure-Portal nach Log Analytics-Arbeitsbereiche, und klicken Sie darauf.

  2. Wählen Sie in der Liste der Arbeitsbereiche Ihren Arbeitsbereichsnamen aus.

  3. Suchen Sie auf der Übersichtsseite für Ihren Arbeitsbereich im Abschnitt "Essentials " die Arbeitsbereichs-ID (eine GUID im Standardformat mit vier Bindestrichen), und wählen Sie dann das Symbol "In Zwischenablage kopieren" daneben aus.

  4. Fügen Sie die ID in eine Datei oder einen anderen sicheren Speicherort ein.

Abrufen der Automatisierungskonto-ID und des DNS-Regionalcodes

So rufen Sie die ID und den DNS-Regionalcode Ihres Automatisierungskontos ab:

  1. Suchen Sie im Azure-Portal nach Automatisierungskonten, und wählen Sie sie aus.

  2. Wählen Sie in der Liste der Automatisierungskonten Ihren Kontonamen aus.

  3. Suchen Sie im Menübereich der Übersichtsseite des Automatisierungskontos die Bezeichnung "Kontoeinstellungen", und wählen Sie dann "Schlüssel" aus.

  4. Kopieren Sie im URL-Feld die GUID, die nach https:// und vor .agentsvc. innerhalb des Domänennamens angezeigt wird. Dieser Wert ist die Automatisierungskonto-ID. Fügen Sie die ID in eine Datei oder einen anderen sicheren Speicherort ein.

  5. Kopieren Sie im selben Feld die kurze alphanumerische Zeichenfolge, die zwischen .agentsvc. und .azure-automation.net innerhalb des Domänennamens angezeigt wird. Dieser Wert ist der REGIONALE DNS-Code. Sie stellt die Region dar, in der sich das Automatisierungskonto befindet. Fügen Sie diesen Wert in eine Datei oder einen anderen sicheren Speicherort ein.

    Informationen zu Regionen, Regionsnamen und DNS-Regionalcodes

    Der Regionsname und der DNS-Regionalcode unterscheiden sich für eine bestimmte Region. Die Region "East US" hat z. B. einen Regionsnamen von eastus, aber ihr DNS-Regionalcode lautet eus. Der REGIONALE DNS-Code ist erforderlich, um den Regionsplatzhalter in diesem Artikel zu ersetzen.

    Sie können die Liste der Regionen und Regionsnamen anzeigen, indem Sie den Befehl "az account list-locations " in Azure CLI ausführen. In der folgenden Tabelle ist eine Liste der Regionen und der zugehörigen DNS-Regionalcodes aufgeführt:

    Region DNS-Regionalcode
    Südafrika, Norden san
    Asien, Osten ea
    Südostasien sea
    Australien, Mitte ac
    Australien, Mitte 2 cbr2
    Australien, Südosten ase
    Australien (Osten) ae
    Brasilien Süd brse
    Brasilien, Südosten brse
    Kanada, Mitte cc
    China, Osten 2 sha2
    China, Norden bjb
    China, Norden 2 bjs2
    Europa, Westen we
    Nordeuropa ne
    Frankreich, Mitte fc
    Frankreich, Süden mrs
    Deutschland, Westen-Mitte dewc
    Indien, Mitte cid
    Indien (Süden) ma
    Japan, Osten jpe
    Japan, Westen jpw
    Korea, Mitte kc
    Korea, Süden ps
    Norwegen, Osten noe
    Norwegen, Westen now
    Schweiz, Westen stzw
    VAE, Mitte auh
    Vereinigte Arabische Emirate, Norden uaen
    UK, Westen cw
    UK, Süden uks
    USA, Mitte cus
    East US eus
    USA (Ost) 2 eus2
    USA Nord Mitte ncus
    USA Süd Mitte scus
    USA, Westen-Mitte wcus
    USA (Westen) wus
    USA, Westen 2 wus2
    USA, Westen 3 usw3
    US Gov Virginia usge
    US Gov Texas ussc
    US Gov Arizona phx

Ausführen des Endpunktverbindungstestcodes

Der folgende Code überprüft die SSL-Konnektivität für mehrere Endpunkte. Bevor Sie diesen Code ausführen, fügen Sie die Werte, die Sie im vorherigen Abschnitt kopiert haben, über die Platzhalter für idWorkspace, idAutomationund idRegion.

Notiz

Die Verbindungsüberprüfung für global.in.ai.monitor.azure.com erfolgt stattdessen durch Ausführen des Cmdlets "Test-NetConnection ". Wenn Sie versuchen, die CheckSSL Funktion unter diesem Domänennamen auszuführen, tritt ein Fehler "ungültiges Remotezertifikat" auf.

cls 
 
# Check sample Log Analytics workspace endpoints, which may include the workspace ID (a GUID).
$idWorkspace = "<32-hexadecimal-digit-guid>"
IPConfig /FlushDNS  # Not required, but recommended if you're collecting a network trace
CheckSSL "$idWorkspace.ods.opinsights.azure.com"
CheckSSL "$idWorkspace.oms.opinsights.azure.com"
CheckSSL "$idWorkspace.agentsvc.azure-automation.net"
CheckSSL "scadvisorcontent.blob.core.windows.net"

# Other related log analytics URLs
CheckSSL "api.monitor.azure.com"

$netTest = @{
    ComputerName = "global.in.ai.monitor.azure.com"
    Port = 443
}
Test-NetConnection @netTest  # Workaround for unexplained error in CheckSSL for this URL

CheckSSL "profiler.monitor.azure.com"
CheckSSL "live.monitor.azure.com"
CheckSSL "snapshot.monitor.azure.com"

# Check sample automation endpoints, which include the automation ID (a GUID) and DNS regional code.
$idAutomation = "<32-hexadecimal-digit-guid>"
$idRegion = "<azure-dns-regional-code>"
CheckSSL "$idAutomation.jrds.$idRegion.azure-automation.net"
CheckSSL "$idAutomation.agentsvc.$idRegion.azure-automation.net"

Schritt 3: Überprüfen der Ausgabe

Der folgende Text enthält eine Beispielausgabe aus einem CheckSSL Funktionsaufruf in Windows PowerShell:

PS C:\WINDOWS\system32> CheckSSL "01234567-89ab-cdef-0123-456789abcdef.ods.opinsights.azure.com"

-- Target: 01234567-89ab-cdef-0123-456789abcdef.ods.opinsights.azure.com / 172.16.154.83

SslProtocol               : Tls12
CipherAlgorithm           : Aes256
HashAlgorithm             : Sha384
KeyExchangeAlgorithm      : 44550
IsAuthenticated           : True
IsEncrypted               : True
IsSigned                  : True
CheckCertRevocationStatus : False

Subject      : CN=ODS-SSL201712EUS.azure.com
Issuer       : CN=Microsoft RSA TLS CA 01, O=Microsoft Corporation, C=US
FriendlyName : 
NotBefore    : 9/26/2021 2:30:43 PM
NotAfter     : 9/26/2022 2:30:43 PM
Thumbprint   : F84E9C8A41CF8C7E62A594F1E95961107C33A30D

Subject Alternative Name
DNS Name=ODS-SSL201712EUS.azure.com
DNS Name=*.ods.opinsights.azure.com
DNS Name=ods.systemcenteradvisor.com
DNS Name=ods.trafficmanager.net
DNS Name=eus-aa-ods-a.cloudapp.net
DNS Name=eus-aa-ods-b.cloudapp.net
DNS Name=eus2-aa-ods-a.cloudapp.net
DNS Name=eus2-aa-ods-b.cloudapp.net

Der Issuer Wert sollte einen Microsoft-Ursprung angeben, wie im folgenden Beispiel gezeigt:

Issuer       : CN=Microsoft RSA TLS CA 01, O=Microsoft Corporation, C=US

Wenn Issuer "Microsoft" nicht in seinen Wert eingeschlossen wird, ändern Sie die Konfiguration Ihrer Firewall oder Ihres Proxys, um die HTTPS-Überprüfung zu umgehen.

Wenn die Ausgabe keine SSL-Informationen zurückgibt, überprüfen Sie, ob die TCP-Verbindung erfolgreich ist. Wenn Sie keine TCP-Verbindung herstellen können, überprüfen Sie die Netzwerkfirewall.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.