Search code examples
powershellubuntucertificatessl-certificate

Wildcard certificate usage search with Powershell or Command prompt


I have a bash command

curl -v --silent https://abc.xyz/ 2>&1 | grep "CN=\*.xyz.com" -c

this works fine from a Ubuntu machine but I want to convert or use a similar command in Powershell or in CMD. I tried a bunch of variations like:

curl https://abc.xyz/ 2>&1 | Select-String -Pattern "CN=\*.xyz.com"

curl -E -Uri https://abc.xyz/ 2>&1 | Select-String -Pattern "CN=\*.xyz.com"

Invoke-WebRequest https://abc.xyz/ 2>&1 | Select-String -Pattern "CN=\*.xyz.com"

What I noticed in PS commands is, it's not outputting the common name to check the pattern with. My actual need is to check if the wildcard cert used in https://abc.xyz/ or not.

What am I missing here?


Solution

  • My actual need is to check if the wildcard cert used in https://abc.xyz/ or not.

    In this example, we'll check if a wildcard cert is used on msn.com:

    $url = 'https://www.msn.com'
    $req = [Net.HttpWebRequest]::Create($url)
    $req.GetResponse() | Out-Null
    $cerName = $req.ServicePoint.Certificate.GetName()
    $cerName -match 'CN=\*\.msn\.com'
    

    Output:

    True