ค้นหาเว็บไซต์

PowerShell รับข้อมูลใบรับรอง SSL


ใช้ไลบรารี [Net.HttpWebRequest] เพื่อสร้างการเชื่อมต่อกับ URI ของเว็บไซต์และ GetResponse() ที่มีข้อมูลใบรับรอง SSL เช่น หมายเลขอ้างอิง ผู้ออก หัวเรื่อง วันหมดอายุ ฯลฯ...

ในบทความนี้ เราจะพูดถึงวิธีการดึงรายละเอียดใบรับรอง SSL จากเว็บไซต์ใน PowerShell

PowerShell รับใบรับรอง SSL จาก URL

ใช้ไลบรารี [Net.HttpWebRequest] ที่มีเมธอด Create() ยอมรับ URL ของเว็บไซต์เป็นพารามิเตอร์อินพุตและสร้างการเชื่อมต่อคำขอเว็บไปยังเว็บไซต์

ใช้เมธอด GetResponse() เพื่อรับรายละเอียดใบรับรอง SSL จาก URL

[Net.ServicePointManager]::ServerCertificateValidationCallback={ $true } ใช้เพื่อละเว้นข้อผิดพลาดหรือคำเตือนใบรับรอง SSL ขณะทำการร้องขอเว็บไปยัง URI

เรียกใช้สคริปต์ PowerShell ต่อไปนี้เพื่อดึงข้อมูลใบรับรอง SSL จาก URL ของเว็บไซต์

#Ignore SSL Warning
[Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }

# Create Web Http request to URI
$uri = "https://google.com/" 
$webRequest = [Net.HttpWebRequest]::Create($uri)

# Get URL Information
$webRequest.ServicePoint

# Retrieve the Information for URI
$webRequest.GetResponse() | Out-NULL

# Get SSL Certificate information
$webRequest.ServicePoint.Certificate

ในสคริปต์ PowerShell ข้างต้น จะใช้ [Net.HttpWebRequest] เพื่อสร้างคำขอเว็บ HTTP ไปยัง URI ของเว็บไซต์ และดึงข้อมูลคุณสมบัติ URI เช่น ที่อยู่, ConnectionName, ใบรับรอง ฯลฯ... ใน $webRequest< ตัวแปร

$webRequest.GetResponse() ดึงข้อมูลการตอบสนองสำหรับ URI และดึงรายละเอียดใบรับรอง เซิร์ฟเวอร์ ส่วนหัว และข้อมูลอื่น ๆ ที่เกี่ยวข้อง

$webRequest.ServicePoint.Certificate รับรายละเอียดใบรับรอง เช่น ผู้ออก หมายเลขจัดการ และรหัสประจำตัวใบรับรอง SSL

ผลลัพธ์ของสคริปต์ PowerShell ด้านบนเพื่อรับรายละเอียดใบรับรอง SSL จาก URL คือ:

PowerShell รับชื่อผู้ออกใบรับรอง SSL

ใบรับรอง SSL มีคุณสมบัติ ผู้ออก หรือเมธอด GetIssuerName() เพื่อดึงข้อมูลชื่อผู้ออกใบรับรอง SSL

เรียกใช้สคริปต์ PowerShell ต่อไปนี้เพื่อรับชื่อผู้ออกใบรับรอง SSL โปรดดูสคริปต์ PowerShell ด้านบนเพื่อสร้างคำขอทางเว็บไปยังเว็บไซต์และรับรายละเอียดใบรับรอง SSL

#Ignore SSL Warning
[Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }

# Create Web Http request to URI
$uri = "https://google.com/" 
$webRequest = [Net.HttpWebRequest]::Create($uri)

# Get URL Information
$webRequest.ServicePoint

# Retrieve the Information for URI
$webRequest.GetResponse() | Out-NULL

# Get SSL Certificate Issuer Name
$webRequest.ServicePoint.Certificate | Select Issuer

# Use GetIssuerName() to obtain SSL certificate issuer name
$webRequest.ServicePoint.Certificate.GetIssuerName()

ผลลัพธ์ของสคริปต์ PowerShell ข้างต้นดึงข้อมูลชื่อผู้ออกใบรับรอง SSL ตามที่ระบุด้านล่าง:

PS D:\> $webRequest.ServicePoint.Certificate | Select Issuer                                                                   
Issuer
------
CN=GTS CA 1C3, O=Google Trust Services LLC, C=US

PS D:\> $webRequest.ServicePoint.Certificate.GetIssuerName()                                                                   C=US, O=Google Trust Services LLC, CN=GTS CA 1C3

ค้นหาชื่อเรื่องใบรับรอง SSL

ใบรับรอง SSL มีคุณสมบัติหัวเรื่องและวิธีการ GetName() ซึ่งใช้เพื่อรับชื่อเรื่องของใบรับรอง SSL

อ้างถึงสคริปต์ PowerShell ด้านบนที่สร้างคำขอเว็บไปยังเว็บไซต์และรับข้อมูลใบรับรอง SSL

# Get SSL Certificate Subject Name
$webRequest.ServicePoint.Certificate | Select Subject

# Use GetName() to obtain SSL certificate Subject name
$webRequest.ServicePoint.Certificate.GetName()

สคริปต์ PowerShell ข้างต้นใช้คุณสมบัติ เรื่อง เพื่อดึงชื่อเรื่องของใบรับรอง SSL อีกวิธีหนึ่งคือใช้วิธี GetName() เพื่อรับชื่อเรื่องใบรับรอง SSL

ผลลัพธ์ของสคริปต์ด้านบนคือ:

PS D:\> $webRequest.ServicePoint.Certificate | Select Subject                                                                  
Subject
-------
CN=www.google.com


PS D:\> $webRequest.ServicePoint.Certificate.GetName()                                                                         CN=www.google.com

ค้นหาหมายเลขซีเรียลใบรับรอง SSL

ใช้วิธี GetSerialNumberString() ของใบรับรอง SSL เพื่อรับหมายเลขซีเรียลของใบรับรอง SSL

อ้างถึงสคริปต์ PowerShell ด้านบนที่สร้างคำขอเว็บไปยัง URL และรับรายละเอียดใบรับรอง

# Use GetName() to obtain SSL certificate SerialNumber
$webRequest.ServicePoint.Certificate.GetSerialNumberString()

สคริปต์ PowerShell ข้างต้นใช้วิธี GetSerialNumberString() เพื่อรับหมายเลขซีเรียลของใบรับรอง SSL

ผลลัพธ์ของสคริปต์ด้านบนคือ:

PS D:\> $webRequest.ServicePoint.Certificate.GetSerialNumberString()                                                           229AE03988E214FE0A531413A2A103BE

เคล็ดลับเด็ด: วิธีตรวจสอบวันหมดอายุของใบรับรอง SSL ใน PowerShell!

บทสรุป

ฉันหวังว่าบทความข้างต้นเกี่ยวกับวิธีรับข้อมูลใบรับรอง SSL ใน PowerShell จะเป็นประโยชน์กับคุณ

คุณสามารถดูหัวข้อเพิ่มเติมเกี่ยวกับคำสั่ง PowerShell Active Directory และข้อมูลพื้นฐานของ PowerShell ได้ในหน้าแรกของ ShellGeek

บทความที่เกี่ยวข้อง