Веб-сервер → Как проверить SSL-сертификат в командной строке
Допустим, вы склонировали из репозитория проект, а в нём в настройках веб-сервера уже настроено https-подключение и прописаны сертификат и ключ. И интересно посмотреть, для какого домена и не просроченный-ли этот самый сертификат. Сделать это можно в командной строке при помощи OpenSSL
1 | openssl x509 -in cert.pem -text -noout
|
Ключ -text говорит о том, что будет выведена вся информация сертификата, а не отдельные детали, вроде -subject, -dates и т.п. -noout убирает собственно сам сертификат из вывода в консоль
Пример выполнения данной команды:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:f9:7f:77:fa:83:17:46:b6:76:bf:38:15:5b:e2:18:01:4a
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Let's Encrypt, CN = R10
Validity
Not Before: Jul 5 05:10:18 2024 GMT
Not After : Oct 3 05:10:17 2024 GMT
Subject: CN = xelbot.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:bb:2f:2a:9b:4f:ee:45:07:d1:62:94:b7:d7:e4:
9e:ff:da:3f:f8:cd:df:25:12:0b:0d:9b:72:ac:26:
f5:34:4a:54:0e:d4:d8:ff:03:3f:92:22:26:34:34:
f3:fb:4c:59:aa:b1:31:f5:20:40:7d:c9:89:c8:0d:
36:9e:89:36:f5:f2:6d:12:d0:43:42:12:34:3c:99:
d3:ad:cb:da:09:de:ed:e3:01:48:3d:0c:d1:f8:4e:
98:82:54:1e:59:ed:9d:17:d5:e9:98:4c:39:4b:59:
23:28:7f:36:30:8f:26:43:8f:7c:a6:33:77:9c:56:
88:cf:43:f8:55:ce:6b:05:47:22:ef:eb:f9:5a:e8:
b4:36:43:39:99:43:d0:cf:45:84:ac:79:f9:cb:47:
40:d2:ce:e8:bc:2a:f3:41:4c:d8:3b:f5:ef:75:34:
cc:4f:65:9a:aa:06:1f:3a:45:3a:7f:dd:11:57:6a:
95:7a:42:43:e5:89:20:b6:0e:b4:80:66:30:7e:41:
14:ef:5a:4b:b6:2f:56:c4:75:c0:82:5a:0c:08:c8:
8a:b9:5c:c2:5a:36:95:f8:20:c2:7c:a7:55:92:6f:
cf:7b:84:0c:20:c6:de:81:a3:f2:ca:7e:50:9a:17:
dd:18:16:d8:bc:1f:f6:07:90:24:3f:02:2a:51:30:
4d:ef
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
18:CA:00:4C:07:73:C4:B2:B8:10:8B:3B:4A:57:F1:77:EE:00:0D:01
X509v3 Authority Key Identifier:
BB:BC:C3:47:A5:E4:BC:A9:C6:C3:A4:72:0C:10:8D:A2:35:E1:C8:E8
Authority Information Access:
OCSP - URI:http://r10.o.lencr.org
CA Issuers - URI:http://r10.i.lencr.org/
X509v3 Subject Alternative Name:
DNS:*.xelbot.com, DNS:xelbot.com
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.1
CT Precertificate SCTs:
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 76:FF:88:3F:0A:B6:FB:95:51:C2:61:CC:F5:87:BA:34:
B4:A4:CD:BB:29:DC:68:42:0A:9F:E6:67:4C:5A:3A:74
Timestamp : Jul 5 06:10:18.500 2024 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:44:02:20:28:B1:F6:62:15:A0:5E:E4:83:38:5E:38:
5B:0A:7A:C9:9F:B8:95:67:A5:09:99:49:A6:D8:1F:83:
9F:C8:57:0E:02:20:67:D8:40:37:B5:46:4E:B7:32:5F:
49:90:C8:27:AD:38:23:44:F0:59:EA:8A:D3:D7:0C:D5:
EF:C2:F9:27:61:23
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : DF:E1:56:EB:AA:05:AF:B5:9C:0F:86:71:8D:A8:C0:32:
4E:AE:56:D9:6E:A7:F5:A5:6A:01:D1:C1:3B:BE:52:5C
Timestamp : Jul 5 06:10:18.613 2024 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:21:00:DA:B4:7A:CD:CD:B0:57:C2:BB:25:3E:
C0:52:0F:FD:05:AE:DF:53:2C:E0:E0:24:F1:29:EC:BA:
7A:FB:66:CE:57:02:20:0C:0F:FC:F3:B5:A3:65:DA:4C:
38:FE:FB:50:16:8F:A2:35:C7:63:F1:AC:39:15:A2:04:
99:90:C5:03:24:CA:06
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
19:6a:63:34:47:f1:12:42:21:6b:0c:f6:5b:59:2f:24:ae:0a:
f8:b3:ea:5e:76:ca:bc:1c:84:5b:75:5e:c5:93:8c:08:34:0d:
74:bd:34:1c:3c:ae:32:39:05:06:92:5a:ec:43:3e:cf:2a:4a:
b8:09:89:b3:63:79:74:6d:41:17:9f:c2:ee:6b:8d:da:94:88:
6b:4f:1c:58:6f:1b:e1:30:b4:4c:d4:a3:c4:86:b9:4b:22:7c:
a0:77:05:49:59:32:84:99:88:57:f2:85:5d:42:05:63:3b:7b:
07:29:eb:ea:5c:aa:90:16:03:65:04:bb:64:af:86:e1:6d:b0:
96:11:eb:db:14:3d:37:ba:33:2e:c3:84:5f:90:54:c4:88:a0:
76:1b:d3:e5:9c:62:bc:95:96:d2:8b:eb:e6:62:e1:55:be:40:
ec:e1:ab:09:ff:c9:d3:65:09:38:c6:5a:14:c6:a1:0b:4b:72:
cf:e0:03:b6:14:4c:2c:d7:0b:1e:ea:c5:1c:78:16:64:0f:08:
36:2e:43:4b:cb:72:d5:0b:ab:40:59:d8:a4:61:23:e0:79:41:
e0:96:b8:65:84:8c:2d:fd:8f:0a:b7:8c:1b:d8:3d:06:c3:a7:
01:a7:41:e7:aa:2c:76:e7:0f:19:3b:f8:21:2a:30:e6:ca:e1:
50:94:d3:31
|
Так же можно в консоли проверить сертификат у сайта. Например, если нужно программно в каком-то скрипте проверять время до истечения сертификата и сигнализировать о приближении часа икс.
1 2 | echo | openssl s_client -servername gitverse.ru -connect gitverse.ru:443 2>/dev/null | \
openssl x509 -noout -issuer -subject -dates
|
Запрашиваем отдельные детали сертификата. Кажется, что ключ -servername дублирует -connect, но это не так, в общем случае на сервере может крутиться несколько сайтов и у них могут быть разные сертификаты. Результат выполнения команды выше:
1 2 3 4 | issuer=C = GR, O = Hellenic Academic and Research Institutions CA, CN = HARICA DV TLS RSA
subject=CN = *.gitverse.ru
notBefore=Dec 15 10:38:15 2023 GMT
notAfter=Dec 13 10:38:15 2024 GMT
|
Комментарии