Пост

[Решено] Добавить корневой сертификат в доверенные в Linux

Корневой сертификат (CA) - это электронный документ, который подписывает центром сертификации SSL-сертификаты, выдаваемые для доменных имен. Корневой сертификат является частью ключа SSL и гарантирует, что выдавшая его организация верифицирована и легальна.

На примере Ubuntu, копируем наш корневой сертификат в формате PEM (сертификат начинается на ----BEGIN CERTIFICATE----) в каталог /usr/local/share/ca-certificates и меняем расширение на .crt.

Выполняем команду

1
$ sudo update-ca-certificates

Вывод команды:

1
2
3
4
5
Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
  • 1 added, 0 removed; done. - сертификат добавился

Проверка:

1
$ openssl s_client -connect mail.itdraft.local:443 -CApath /etc/ssl/certs

Вывод команды:

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
CONNECTED(00000003)
...
---
Certificate chain
 0 s:C = RU, ST = Moscow, L = Moscow, O = ITDraft, OU = IT, CN = mail.itdraft.local
   i:DC = local, DC = itdraft, CN = Root CA
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Oct  8 10:22:21 2023 GMT; NotAfter: Oct  7 10:22:21 2025 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
...
SSL handshake has read 2505 bytes and written 439 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
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-AES256-GCM-SHA384
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: ...
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1726034944
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
...

В выводе смотрим:

  • Certificate chain рядом с i:. Должен отображаться издатель: i:DC = local, DC = itdraft, CN = Root CA. Это говорит о том, что сервер представляет сертификат, подписанный нашим добавленным корневым сертификатом.
  • Verify return code, значение должно быть 0 (ok).
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.