Vis sertifikat

Henter serversertifikatet og viser subjekt, utsteder og gyldighetsperiode.

HTTPS (443)

PowerShell (Windows)

SslStream (.NET) Innebygd

$h = "mail.example.com"; $p = 443
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate
$cert | Format-List Subject, Issuer, NotBefore, NotAfter, Thumbprint
$ssl.Dispose(); $c.Close()

openssl Tilleggsverktøy

"" | openssl s_client -connect mail.example.com:443 -servername mail.example.com 2>$null | openssl x509 -noout -subject -issuer -dates

Unix-skall (bash)

openssl Innebygd

openssl s_client -connect mail.example.com:443 -servername mail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

gnutls-cli Tilleggsverktøy

gnutls-cli --print-cert mail.example.com:443 </dev/null

Outlook Web App

PowerShell (Windows)

SslStream (.NET) Innebygd

$h = "webmail.example.com"; $p = 443
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate
$cert | Format-List Subject, Issuer, NotBefore, NotAfter, Thumbprint
$ssl.Dispose(); $c.Close()

openssl Tilleggsverktøy

"" | openssl s_client -connect webmail.example.com:443 -servername webmail.example.com 2>$null | openssl x509 -noout -subject -issuer -dates

Unix-skall (bash)

openssl Innebygd

openssl s_client -connect webmail.example.com:443 -servername webmail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

gnutls-cli Tilleggsverktøy

gnutls-cli --print-cert webmail.example.com:443 </dev/null

Callbacken { $true } godtar med vilje også utløpte eller selvsignerte sertifikater, slik at de forblir synlige.

Utløpsdato

Viser utløpsdatoen og om sertifikatet fortsatt er gyldig om 30 dager.

HTTPS (443)

PowerShell (Windows)

SslStream (.NET) Innebygd

$h = "mail.example.com"; $p = 443
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate
"NotAfter {0}  ({1} days left)" -f $cert.NotAfter, ($cert.NotAfter - (Get-Date)).Days
$ssl.Dispose(); $c.Close()

openssl Tilleggsverktøy

"" | openssl s_client -connect mail.example.com:443 -servername mail.example.com 2>$null | openssl x509 -noout -enddate

Unix-skall (bash)

openssl Innebygd

echo | openssl s_client -connect mail.example.com:443 -servername mail.example.com 2>/dev/null | openssl x509 -noout -enddate
echo | openssl s_client -connect mail.example.com:443 -servername mail.example.com 2>/dev/null | openssl x509 -noout -checkend 2592000 && echo "valid >30d" || echo "expires <30d"

curl Tilleggsverktøy

curl -sSv "https://mail.example.com:443" 2>&1 | grep -E "expire|subject:|issuer:"

Sertifikatkjede

Viser kjeden serveren leverer, for å oppdage manglende mellomsertifikater.

PowerShell (Windows)

X509Chain (.NET) Innebygd

$h = "mail.example.com"; $p = 443
$c = New-Object Net.Sockets.TcpClient($h, $p)
$ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
$cert = [Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate
$chain = New-Object Security.Cryptography.X509Certificates.X509Chain
$chain.ChainPolicy.RevocationMode = "NoCheck"
[void]$chain.Build($cert)
$chain.ChainElements | ForEach-Object { $_.Certificate.Subject }
$ssl.Dispose(); $c.Close()

openssl Tilleggsverktøy

"" | openssl s_client -connect mail.example.com:443 -servername mail.example.com -showcerts 2>$null

Unix-skall (bash)

openssl Innebygd

openssl s_client -connect mail.example.com:443 -servername mail.example.com -showcerts </dev/null 2>/dev/null | grep -E "^ *(s:|i:)"

gnutls-cli Tilleggsverktøy

gnutls-cli --print-cert mail.example.com:443 </dev/null 2>/dev/null | grep -E "Subject:|Issuer:"

TLS-versjoner

Tester hvilke TLS-versjoner serveren godtar.

HTTPS (443)

PowerShell (Windows)

SslStream (.NET) Innebygd

foreach ($proto in "Tls12", "Tls13") {
  try {
    $c = New-Object Net.Sockets.TcpClient("mail.example.com", 443)
    $ssl = New-Object Net.Security.SslStream($c.GetStream(), $false, ({ $true }))
    $ssl.AuthenticateAsClient("mail.example.com", $null, [Security.Authentication.SslProtocols]$proto, $false)
    "$proto ok: $($ssl.SslProtocol) / $($ssl.CipherAlgorithm)"
    $ssl.Dispose(); $c.Close()
  } catch { "$proto not supported" }
}

openssl Tilleggsverktøy

"" | openssl s_client -connect mail.example.com:443 -servername mail.example.com -tls1_2 2>$null | Select-String "Protocol"

Unix-skall (bash)

openssl Innebygd

for proto in -tls1 -tls1_1 -tls1_2 -tls1_3; do
  echo | openssl s_client -connect mail.example.com:443 -servername mail.example.com $proto >/dev/null 2>&1 \
    && echo "$proto supported" || echo "$proto not"
done

nmap Tilleggsverktøy

nmap --script ssl-enum-ciphers -p 443 mail.example.com

.NET tester her TLS 1.2 og 1.3; eldre versjoner er som regel deaktivert i rammeverket. openssl kontrollerer også TLS 1.0/1.1.

SMTP-sertifikat (STARTTLS)

Viser sertifikatet en e-postserver presenterer ved STARTTLS på port 25.

SMTP (25)

PowerShell (Windows)

SslStream (.NET) Innebygd

$h = "mail.example.com"; $p = 25
$c = New-Object Net.Sockets.TcpClient($h, $p)
$s = $c.GetStream()
$r = New-Object IO.StreamReader($s)
$w = New-Object IO.StreamWriter($s); $w.NewLine = "`r`n"; $w.AutoFlush = $true
$r.ReadLine() | Out-Null
$w.WriteLine("EHLO test.example.com"); Start-Sleep -Milliseconds 200; while ($c.Available) { $r.ReadLine() | Out-Null }
$w.WriteLine("STARTTLS"); $r.ReadLine()
$ssl = New-Object Net.Security.SslStream($s, $false, ({ $true }))
$ssl.AuthenticateAsClient($h)
([Security.Cryptography.X509Certificates.X509Certificate2]$ssl.RemoteCertificate) | Format-List Subject, Issuer, NotBefore, NotAfter
$ssl.Dispose(); $c.Close()

openssl Tilleggsverktøy

openssl s_client -starttls smtp -connect mail.example.com:25 -servername mail.example.com

Unix-skall (bash)

openssl Innebygd

openssl s_client -starttls smtp -connect mail.example.com:25 -servername mail.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

swaks Tilleggsverktøy

swaks --server mail.example.com:25 -tls --quit-after TLS

Undersøk sertifikatfil

Leser en lokal sertifikatfil (PEM/CER) og viser subjekt, utsteder og SAN.

PowerShell (Windows)

X509Certificate2 (.NET) Innebygd

$cert = New-Object Security.Cryptography.X509Certificates.X509Certificate2 "cert.pem"
$cert | Format-List Subject, Issuer, NotBefore, NotAfter, DnsNameList, Thumbprint

openssl Tilleggsverktøy

openssl x509 -in cert.pem -noout -subject -issuer -dates -ext subjectAltName

Unix-skall (bash)

openssl Innebygd

openssl x509 -in cert.pem -noout -subject -issuer -dates -ext subjectAltName

certtool Tilleggsverktøy

certtool --certificate-info --infile cert.pem

For passordbeskyttede PFX-filer i PowerShell, bruk heller Get-PfxCertificate.

Andre områder