Jika Anda memiliki OpenSSL yang Anda inginkan, memverifikasi ini sangat mudah:
cat /dev/null | openssl s_client -showcerts -servername example.com -connect example.com:443
Saya akan menjelaskan komponennya:
cat /dev/null
: openssl s_client
bekerja sangat mirip telnet
. Itu membuat koneksi dan Anda kemudian dapat berinteraksi dengannya. Kapan openssl
bertemu EOF di aliran input, koneksi ditutup. cat /dev/null
segera menghasilkan EOF. Atau, Anda dapat menggunakan Ctrl D untuk mengeluarkan EOF di terminal.
openssl s_client
: "Program klien SSL / TLS"
-showcerts
: Tampilkan gumpalan sertifikat dalam format PEM. Sebaliknya hanya menampilkan sertifikat server.
-servername example.com
: Tetapkan nama server untuk SNI . Diperlukan saat melakukan vhost berbasis nama HTTPS.
-connect example.com:443
: Terhubung ke example.com
di pelabuhan 443
, port HTTPS standar.
Ini menghasilkan sesuatu seperti itu:
$ cat /dev/null | openssl s_client -showcerts -servername inbox.google.com -connect inbox.google.com:443
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = mail.google.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
i:/C=US/O=Google Inc/CN=Google Internet Authority G2
-----BEGIN CERTIFICATE-----
snip
-----END CERTIFICATE-----
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
-----BEGIN CERTIFICATE-----
snip
-----END CERTIFICATE-----
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
-----BEGIN CERTIFICATE-----
snip
-----END CERTIFICATE-----
---
Server certificate
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3767 bytes and written 469 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCM-SHA256
Session-ID: 1B47CE2ADB10CE410C8048C3AAEF7CEF1B2B76C6D2DF5EDE78FE015A6DA44207
Session-ID-ctx:
Master-Key: E9AE458F6D72D507F422DA2340C7345AC6EDB087278E62A5FDA754897EC6BDF5C336AFBF6B88554E358C675A3545B724
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 100800 (seconds)
TLS session ticket:
snip
Start Time: 1460049698
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
DONE
Saya menggunakan domain Google di sini karena memiliki rantai sertifikat yang lebih dalam daripada example.com
. Sertifikat di sini memiliki "Nama Alternatif Perihal" dan karenanya juga berlaku untuk inbox.google.com
.
Server yang dikonfigurasi secara tidak benar akan melewati sertifikat perantara, yang disebut "Google Internet Authority G2" di sini. Sertifikat Equifax agak berlebihan karena GeoTrust adalah CA mapan yang langsung dipercaya di peramban Anda.