Веб-сервер → Как проверить 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

Комментарии

0 комментариев Написать что-нибудь
Или войдите, чтобы не заполнять форму:
Адрес электронной почты нигде не отображается, необходим только для обратной связи.
Напрограммировано на Go 1.23.3, версия движка 2a6f89b