MyTetra Share
Делитесь знаниями!
Как с помощью OpenSSL получить информацию о сертификате с HTTPS сайта?
Время создания: 21.06.2023 10:05
Автор: Xintrea
Текстовые метки: linux, openssl, ssl, https, просмотр, информация, сертификат, ключ, подпись, сигнатура
Раздел: Компьютер - Linux - Безопасность
Запись: xintrea/mytetra_syncro/master/base/1687331126p25olaghc1/text.html на raw.github.com

Утилита openssl имеет в своем нутре весьма много различных функций. Помимо того, что через нее можно просматривать информацию о файлах с ключами и сертификатами, в openssl имеется возможность подключаться по сети к удаленным ресурсам, и вытаскивать информацию по проводам. А не только из памяти и жесткого диска.


Чтобы получить сертификат с сайта, можно воспользоваться встроенным в openssl сетевым клиентом. Команда, получающая SSL-сертификат с домена GitHub.com будет выглядеть так:



> openssl s_client -connect github.com:443 </dev/null 2>/dev/null


CONNECTED(00000003)

---

Certificate chain

0 s:C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = github.com

i:C = US, O = DigiCert Inc, CN = DigiCert TLS Hybrid ECC SHA384 2020 CA1

1 s:C = US, O = DigiCert Inc, CN = DigiCert TLS Hybrid ECC SHA384 2020 CA1

i:C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert Global Root CA

---

Server certificate

-----BEGIN CERTIFICATE-----

MIIFajCCBPGgAwIBAgIQDNCovsYyz+ZF7KCpsIT7HDAKBggqhkjOPQQDAzBWMQsw

...

...

...

vMkXEPvNvv4t30K6xtpG26qmZ+6OiISBIIXMljWnsiYR1gyZnTzIg3AQSw4Vmw==

-----END CERTIFICATE-----

subject=C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = github.com


issuer=C = US, O = DigiCert Inc, CN = DigiCert TLS Hybrid ECC SHA384 2020 CA1


---

No client certificate CA names sent

Peer signing digest: SHA256

Peer signature type: ECDSA

Server Temp Key: X25519, 253 bits

---

SSL handshake has read 2805 bytes and written 366 bytes

Verification: OK

---

New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256

Server public key is 256 bit

Secure Renegotiation IS NOT supported

Compression: NONE

Expansion: NONE

No ALPN negotiated

Early data was not sent

Verify return code: 0 (ok)

---



Однако, полученная таким образом информация - это, по сути, только "сырые" данные сертификата, приправленные информацией о цепочке сертификатов и используемых алгоритмах шифрования/хеширования.


Чтобы получить полную информацию из самого сертификата, можно снова воспользоваться утилитой openssl, добавив распарсивание данных из формата x509. Эти данные заключенны в блоке с кодировкой base64. Для этого можно воспользоваться следующей командой:



> openssl s_client -connect github.com:443 </dev/null 2>/dev/null | openssl x509 -inform pem -text


Certificate:

Data:

Version: 3 (0x2)

Serial Number:

0c:d0:a8:be:c6:32:cf:e6:45:ec:a0:a9:b0:84:fb:1c

Signature Algorithm: ecdsa-with-SHA384

Issuer: C = US, O = DigiCert Inc, CN = DigiCert TLS Hybrid ECC SHA384 2020 CA1

Validity

Not Before: Feb 14 00:00:00 2023 GMT

Not After : Mar 14 23:59:59 2024 GMT

Subject: C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = github.com

Subject Public Key Info:

Public Key Algorithm: id-ecPublicKey

Public-Key: (256 bit)

pub:

04:a3:a4:03:46:03:df:46:51:56:cb:c9:39:ab:22:

...

aa:f2:e5:43:b3

ASN1 OID: prime256v1

NIST CURVE: P-256

X509v3 extensions:

X509v3 Authority Key Identifier:

keyid:0A:BC:08:29:17:8C:A5:39:6D:7A:0E:CE:33:C7:2E:B3:ED:FB:C3:7A

X509v3 Subject Key Identifier:

C7:07:27:78:85:F2:9D:33:C9:4C:5E:56:7D:5C:D6:8E:72:67:EB:DE

X509v3 Subject Alternative Name:

DNS:github.com, DNS:www.github.com

X509v3 Key Usage: critical

Digital Signature

X509v3 Extended Key Usage:

TLS Web Server Authentication, TLS Web Client Authentication

X509v3 CRL Distribution Points:

Full Name:

URI:http://crl3.digicert.com/DigiCertTLSHybridECCSHA3842020CA1-1.crl

Full Name:

URI:http://crl4.digicert.com/DigiCertTLSHybridECCSHA3842020CA1-1.crl

X509v3 Certificate Policies:

Policy: 2.23.140.1.2.2

CPS: http://www.digicert.com/CPS


Authority Information Access:

OCSP - URI:http://ocsp.digicert.com

CA Issuers - URI:http://cacerts.digicert.com/DigiCertTLSHybridECCSHA3842020CA1-1.crt

X509v3 Basic Constraints:

CA:FALSE

CT Precertificate SCTs:

Signed Certificate Timestamp:

Version : v1 (0x0)

Log ID : EE:CD:D0:64:D5:DB:1A:CE:C5:5C:B7:9D:B4:CD:13:A2:

32:87:46:7C:BC:EC:DE:C3:51:48:59:46:71:1F:B5:9B

Timestamp : Feb 14 16:58:33.338 2023 GMT

Extensions: none

Signature : ecdsa-with-SHA256

30:46:02:21:00:E4:16:AE:D3:E2:2C:BA:82:9F:A9:79:

...

4B:76:95:12:04:A6:BF:2E

Signed Certificate Timestamp:

Version : v1 (0x0)

Log ID : 48:B0:E3:6B:DA:A6:47:34:0F:E5:6A:02:FA:9D:30:EB:

1C:52:01:CB:56:DD:2C:81:D9:BB:BF:AB:39:D8:84:73

Timestamp : Feb 14 16:58:33.387 2023 GMT

Extensions: none

Signature : ecdsa-with-SHA256

30:45:02:20:1E:3C:60:32:7E:20:51:F5:D6:E1:AF:7D:

...

EB:DB:F5:11:EE:5B:D4

Signed Certificate Timestamp:

Version : v1 (0x0)

Log ID : 3B:53:77:75:3E:2D:B9:80:4E:8B:30:5B:06:FE:40:3B:

67:D8:4F:C3:F4:C7:BD:00:0D:2D:72:6F:E1:FA:D4:17

Timestamp : Feb 14 16:58:33.402 2023 GMT

Extensions: none

Signature : ecdsa-with-SHA256

30:46:02:21:00:CC:E0:6B:F4:E6:74:FB:A3:92:67:21:

...

80:85:80:07:AA:B1:51:47

Signature Algorithm: ecdsa-with-SHA384

30:64:02:30:04:dc:0d:d4:de:34:99:0a:9c:1f:a8:e1:c1:76:

...

0c:99:9d:3c:c8:83:70:10:4b:0e:15:9b

-----BEGIN CERTIFICATE-----

MIIFajCCBPGgAwIBAgIQDNCovsYyz+ZF7KCpsIT7HDAKBggqhkjOPQQDAzBWMQsw

...

...

...

vMkXEPvNvv4t30K6xtpG26qmZ+6OiISBIIXMljWnsiYR1gyZnTzIg3AQSw4Vmw==

-----END CERTIFICATE-----



Вот таким нехитрым способом можно прямо в консоли, не запуская браузер, узнать всю необходимую информацию о сертификате интересуемого сайта.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования