|
|||||||
Как с помощью 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----- Вот таким нехитрым способом можно прямо в консоли, не запуская браузер, узнать всю необходимую информацию о сертификате интересуемого сайта. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|