Установка коренвого сертификата

Добрый день.
Нужно установить в систему корневой сертификат Ростелекома ca.root.crt

C Linux до сего дня не работал от слова совсем. Получили по программе импортозамещения ноутбуки Гравитон с предустановленной Calculate Linux. Версия ядра 5.10.53-calculate.

Помогите пожалуйста конкретными командами.

А можно ссылкой на WiKi “Gentoo”?

Certificates — Gentoo Wiki

Да, ещё ведь можно устанавливать сертификаты с помощью самих браузеров, возможно этого окажется достаточно.

1 Like

Как ставить сертификаты в Firefox & chromium хорошо написано на сайте госуслуг (Портал государственных услуг Российской Федерации)

2 Likes

Добрый день. Столкнулся с похожей проблемой. Зашел к нам Ростелеком со своими КФ. Теперь нужно перенастраивать сеть. Изменения нужно вносить в IP, затем proxy настраивать и добавлять сертификат.
С первыми 2 пунктами проблем не возникло(наверное).
Вот с сертификатом есть ньюансы.
Сам сертификат я через хром добавил, интернет пошел, но только в браузере.
Но перестало работать обновление, т.е. через команду cl-update я получаю : не удалось найти сервер обновлений, сервер бинарных обн-й и в итоге не удалось обновить.
Я подумал что может недостаточно добавить сертификат через хром, нужно именно системно, т.е. через терминал. Нашел похожую тему, попытался сделать по инструкции(Certificates - Gentoo wiki). В статье указано что нужно сертификат скопировать в папку по пути /usr/local/share/ca-certificates. Система ругается, что нет такого файла или каталога. Полез по этому пути и обнаружил, что у меня путь выглядит следующим образом /usr/share/ca-certificates. Изменил путь, сертификат скопировал, обновил(но это все на тестовой машине, завтра буду пробовать на рабочей)
Возникло 2 вопроса:

  1. А собственно точно ли дело в сертификате или может я не туда полез? как можно проверить почему система не видет сервера?
  2. Это нормально что путь немного отличается. или подпапка local - это в генту, а в калкуляте по другому.

Сильно не ругайтесь, я только учусь. первый опыт работы с линуксом

Может как и в сертификате, так и в прокси. Вы каким образом указывали прокси ЕСПД?

Это нормально. Следует почитать за стандартные пути “Linux”.

Например, (выполните поисковый запрос по фразе “стандартные пути linux /usr/local/” и выберите тот источник, который Вам покажется более компетентным:

/usr/local – файлы пользователя (программы, библиотеки и настройки, созданные пользователем);

/usr/local – каталог для установки программ, не включенных в основную поставку системы. Название получил в то время, когда разработчики Unix’а активно экспериментировали с сетевыми файловыми системами. Считалось, что каталог /usr может быть подключен по сети для всех компьютеров в локальной сети, а /usr/local – расположен на локальном диске. В /usr/local находятся стандартные подкаталоги etc , bin , sbin , lib .

Может как и в сертификате, так и в прокси. Вы каким образом указывали прокси ЕСПД?

Через графический интерфейс(настройка сети-прокси), не через терминал. Лучше прописывать через терминал?

C помощью cистемных переменных.

Доброе утро.
Что-то не идет от слова совсем.
Сертификат скопировал, обновил, перезагрузил - обновление не заработало.
Полез в прокси:
root # export http_proxy="00.000.00.00:0000" # Для Portage и Links
root # export https_proxy="00.000.00.00:0000" # Только для Links
00.000.00.00:0000-соответственно сам ip адрес+порт прокси.
результата нет.
Что не так делаю? или чего не доделываю?
В браузере все норм, сейчас пишу с рабочей машины.
ДНС РосТелКом не дали, сказали не нужны.

Может поможет для анализирования

calculate administrator # ifconfig
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xx.xxx.xx.xx netmask xxx.xxx.xxx.xxx broadcast xx.xxx.xx.xxx
inet6 fe80::c29b:f4ff:fe61:8b1d prefixlen 64 scopeid 0x20
ether c0:9b:f4:61:8b:1d txqueuelen 1000 (Ethernet)
RX packets 53873 bytes 25470899 (24.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11343 bytes 1846013 (1.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xa1100000-a1120000

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 944 bytes 532934 (520.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 944 bytes 532934 (520.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Результат CURL
administrator@calculate ~ $ curl --location gentoo.org --output /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: curl - SSL CA Certificates

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the webpage mentioned above.

и пинг

calculate administrator # ping -c 3 gentoo.org
ping: gentoo.org: Временный сбой в разрешении имен

Что вернёт команда?
$ env | grep -i https

Не увидел IP-адрес в выводе, ну, наверное это и не важно, раз доступ из браузера имеется.

Ну, а то, что не резолвятся адреса, ну так это из-за того, что Вы работаете без DNS, через прокси ЕСПД.

Что вернёт команда?

$ env | grep -i https

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

а на это стоит обращать внимание? насколько я понимаю ругается на сертификат

curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: [curl - SSL CA Certificates](https://curl.se/docs/sslcerts.html)

Да, ругается на самоподписанный сертификат. Возможно, что он в хранилище не установился.

Работу прокси, можно проверить на http:// сайте, т.е. на сайте без защищённого подключения, в таком случае сертификат ЕСПД в соединении участвовать не будет.

У Самого в наличии подключения к ЕСПД нет (можно конечно заморочиться и заполучить), но выглядит установка сертификата так, например:

Спойлер
$ ls -l /usr/local/share/ca-certificates/
итого 4
-rw-r--r-- 1 det det 1017 окт  9 12:05 ca.root.crt
 # openssl x509 -text -in /usr/local/share/ca-certificates/ca.root.crt --noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            8d:cc:97:5d:7b:9f:f5:fa
        Signature Algorithm: ecdsa-with-SHA384
        Issuer: C=RU, ST=78 Saint Petersburg, L=Moscow, O=PJSC "Rostelecom", CN=CA Root Social Objects
        Validity
            Not Before: Nov  6 01:50:45 2019 GMT
            Not After : Nov  3 01:50:45 2029 GMT
        Subject: C=RU, ST=78 Saint Petersburg, L=Moscow, O=PJSC "Rostelecom", CN=CA Root Social Objects
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (521 bit)
                pub:
                    04:01:1b:2b:1a:02:b9:93:e9:32:60:05:34:81:37:
                    2e:3f:eb:df:38:73:de:e3:70:ae:80:76:67:76:9b:
                    10:a3:c8:c4:ea:f4:df:8a:a4:da:f8:8f:e8:64:ba:
                    74:62:bb:78:f3:b9:aa:00:63:06:05:18:f2:f6:06:
                    52:3a:6f:a8:66:83:ea:00:f5:db:a1:40:b0:46:b5:
                    3f:19:d5:a3:e3:56:dd:4a:38:8a:2c:56:39:16:e4:
                    87:df:9e:25:30:ef:f4:db:5c:21:5d:72:1b:bc:2c:
                    2d:75:50:27:49:7d:c5:3a:13:cd:94:e6:c0:9e:13:
                    ed:3a:09:a5:20:e8:72:46:ad:1b:d7:09:a4
                ASN1 OID: secp521r1
                NIST CURVE: P-521
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                B0:85:0F:F0:C5:31:AC:E6:89:C1:0F:39:B9:46:9B:78:B3:58:6C:41
            X509v3 Authority Key Identifier:
                B0:85:0F:F0:C5:31:AC:E6:89:C1:0F:39:B9:46:9B:78:B3:58:6C:41
            X509v3 Basic Constraints:
                CA:TRUE
    Signature Algorithm: ecdsa-with-SHA384
    Signature Value:
        30:81:88:02:42:01:2c:5a:bc:76:79:aa:bc:14:25:ed:d3:3e:
        f9:69:a5:c4:33:ba:56:d9:dc:eb:4d:95:b6:c4:6c:55:f2:3a:
        c1:82:5d:cb:da:37:e1:a8:e4:c6:bd:36:7c:5a:98:b2:65:21:
        37:fd:07:60:85:09:91:b9:7f:dc:ff:bf:75:f9:5e:fa:1f:02:
        42:01:3c:30:20:ce:14:f9:f0:70:e4:07:b7:1f:ff:68:e0:03:
        bf:89:2f:de:27:7b:a4:bd:f6:90:e2:09:0c:5c:55:94:76:92:
        c1:d1:07:6f:d6:43:df:36:d3:8e:56:89:76:23:84:b7:47:d6:
        e5:b1:f6:e2:9b:26:a8:ae:5a:62:c4:8e:bd
# update-ca-certificates
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.
$ ls -l /etc/ssl/certs | grep ca.root
lrwxrwxrwx 1 root root     11 окт  9 12:07 73e21935.0 -> ca.root.pem
lrwxrwxrwx 1 root root     44 окт  9 12:07 ca.root.pem -> /usr/local/share/ca-certificates/ca.root.crt

Я получается только скопировал и все(наивный, думал этого достаточно).
Еще обратил внимание на то, что при выполнении:
# update-ca-certificates 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.
у меня было 0 added. Думал что так и должно быть, теперь буду знать.
Огромное спасибо. Буду пробовать.

результат выполнения команды.

Наполняйте файл, с указанием IP Своего прокси, например:

$ cat /etc/environment | grep -i proxy
http_proxy="http://10.0.2.52:3128/"
https_proxy="http://10.0.2.52:3128/"
ftp_proxy="http://10.0.2.52:3128/"

Доброе утро.

calculate administrator # ls -l /usr/share/ca-certificates/
итого 16
-rw-r--r-- 1 root root  1017 окт  9 08:27 ca-root.crt
drwxr-xr-x 2 root root 12288 окт  9 08:35 mozilla
calculate administrator # openssl x509 -text -in /usr/share/ca-certificates/ca-root.crt --noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            8d:cc:97:5d:7b:9f:f5:fa
        Signature Algorithm: ecdsa-with-SHA384
        Issuer: C=RU, ST=78 Saint Petersburg, L=Moscow, O=PJSC "Rostelecom", CN=CA Root Social Objects
        Validity
            Not Before: Nov  6 01:50:45 2019 GMT
            Not After : Nov  3 01:50:45 2029 GMT
        Subject: C=RU, ST=78 Saint Petersburg, L=Moscow, O=PJSC "Rostelecom", CN=CA Root Social Objects
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (521 bit)
                pub:
                    04:01:1b:2b:1a:02:b9:93:e9:32:60:05:34:81:37:
                    2e:3f:eb:df:38:73:de:e3:70:ae:80:76:67:76:9b:
                    10:a3:c8:c4:ea:f4:df:8a:a4:da:f8:8f:e8:64:ba:
                    74:62:bb:78:f3:b9:aa:00:63:06:05:18:f2:f6:06:
                    52:3a:6f:a8:66:83:ea:00:f5:db:a1:40:b0:46:b5:
                    3f:19:d5:a3:e3:56:dd:4a:38:8a:2c:56:39:16:e4:
                    87:df:9e:25:30:ef:f4:db:5c:21:5d:72:1b:bc:2c:
                    2d:75:50:27:49:7d:c5:3a:13:cd:94:e6:c0:9e:13:
                    ed:3a:09:a5:20:e8:72:46:ad:1b:d7:09:a4
                ASN1 OID: secp521r1
                NIST CURVE: P-521
        X509v3 extensions:
            X509v3 Subject Key Identifier: 
                B0:85:0F:F0:C5:31:AC:E6:89:C1:0F:39:B9:46:9B:78:B3:58:6C:41
            X509v3 Authority Key Identifier: 
                B0:85:0F:F0:C5:31:AC:E6:89:C1:0F:39:B9:46:9B:78:B3:58:6C:41
            X509v3 Basic Constraints: 
                CA:TRUE
    Signature Algorithm: ecdsa-with-SHA384
    Signature Value:
        30:81:88:02:42:01:2c:5a:bc:76:79:aa:bc:14:25:ed:d3:3e:
        f9:69:a5:c4:33:ba:56:d9:dc:eb:4d:95:b6:c4:6c:55:f2:3a:
        c1:82:5d:cb:da:37:e1:a8:e4:c6:bd:36:7c:5a:98:b2:65:21:
        37:fd:07:60:85:09:91:b9:7f:dc:ff:bf:75:f9:5e:fa:1f:02:
        42:01:3c:30:20:ce:14:f9:f0:70:e4:07:b7:1f:ff:68:e0:03:
        bf:89:2f:de:27:7b:a4:bd:f6:90:e2:09:0c:5c:55:94:76:92:
        c1:d1:07:6f:d6:43:df:36:d3:8e:56:89:76:23:84:b7:47:d6:
        e5:b1:f6:e2:9b:26:a8:ae:5a:62:c4:8e:bd
calculate administrator # update-ca-certificates
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
calculate administrator # ls -l /etc/ssl/certs | grep ca.root

почему-то не добавляется что ли

здесь:

calculate administrator # env | grep -i https
https_proxy=http://10.0.61.52:3128/
HTTPS_PROXY=http://10.0.61.52:3128/

все стало ровно

Обратите внимание на путь к каталогу:

И да, если сертификат ранее был добавлен, повторно он уже не добавится;

Т.е. Вы добились желаемого?

К сожалению нет.

administrator@calculate ~ $ cl-update
Синхронизация репозиториев
 * Поиск нового сервера обновлений ...
 * Не удалось найти рабочий сервер обновлений  
 * Не удалось найти сервер бинарных обновлений
 * Не удалось обновить

По поводу каталога:

calculate administrator # ls -l /usr/local/share/ca-certificates/
ls: невозможно получить доступ к '/usr/local/share/ca-certificates/': Нет такого файла или каталога

Но если без “local” то все работает

Я имел ввиду что прокси стал и по команде выводится