Рубрика: Linux

Установка сертификатов от МинЦифры в ОС и браузеры

Недавно мне попался первый проект с привязкой функционала к мессенджеру Макс. Первым делом зарегистрировал бота через местного БотФазера (max.ru/business_bot) и пошёл смотреть официальную документацию (dev.max.ru/docs). Кстати, создание бота и его модерация прошла за несколько минут, буквально за 3-4, хотя я слышал о каких-то невиданных сроках проверки и великих сложностях, на деле оказалось всё просто. После поверхностного знакомства с документацией, как обычно, захотелось покидать тестовые запросы для проверки работоспособности. Начал с получения общей информации:

curl -X GET "https://platform-api2.max.ru/me" \
  -H "Authorization: МойТокен"

Но получил вот такую ошибку:

curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.se/docs/sslcerts.html 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 web page mentioned above.

Проблема оказалась в следующем: Макс использует сертификаты от Национального удостоверяющего центра Минцифры России, а в стандартных хранилищах доверенных сертификатов многих операционок никак не связанных с РФ эти корневые и промежуточные сертификаты отсутствуют. Поэтому curl не может построить цепочку доверия и выдаёт ошибку 60.

Исправить всё это дело можно через официальную инструкцию с ГосУслуг — gosuslugi.ru/crt. На этой странице подробно расписано как добавить сертификаты в различные ОС (Windows, MacOS, Linux, Android и iOS). Я установил для домашней Windows 11 через скачивание и установку (почти как обычную программу, в статье есть даже видео инструкция), а в Ubuntu под WSL с помощью этих команд:

1. Скачал в downloads и разархивировал.
2. sudo cp linux_russian_trusted_root_ca_pem/russian_trusted_root_ca_pem.crt /usr/local/share/ca-certificates/
3. sudo cp russian_trusted_sub_ca_pem/russian_trusted_sub_ca_pem.crt /usr/local/share/ca-certificates/
4. sudo update-ca-certificates

И на выходе получил:

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
2 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

После этого запрос с получением общей информации о боте к platform-api2.max.ru через curl начал работать корректно.

Удаление ollama из Линукса (Linux) и Виндоуз (Windows)

Что такое ollama описывать сейчас не буду, кто в теме, тот в теме, тут нужно полноценное видео или внушительных размеров статью писать. На это, как обычно, времени не хватает. Теперь к делу. После установки ollama в свою систему вы наверняка обрадуетесь её функционалу, также как и я, но заметите одну странность — отсутствие штатной возможности остановить сервис. Да, вы можете остановить сервис в Линуксе как и любой другой вот так:

systemctl stop ollama.service

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

Удаление в Линуксе:

sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
sudo systemctl daemon-reload
 
sudo rm /usr/local/bin/ollama
 
sudo userdel ollama
sudo groupdel ollama

Удаление в Виндоуз как обычно проще, оно осуществляется через стандартные «Программы и компоненты». Команд нет, выбираете из списка ollama и нажимаете «Удалить».

Изменение hostname в WSL2 (Ubuntu) навсегда

Для изменения имени хоста в терминале достаточно войти в WSL с помощью команды wsl и ввести:

sudo hostname MY_NEW_HOST_NAME

Имя хоста изменится, но после перезагрузки WSL система создаст новое имя и присвоит вашей машине. Это происходит при каждом запуске WSL по умолчанию. Для изменения этого поведения необходимо добавить в конфигурацию WSL (/etc/wsl.conf) следующие настройки:

...
hostname = MY_NEW_HOST_NAME
generateHosts = false
...

Также необходимо указать новое наименование хоста в /etc/hosts вместо созданного системой:

...
127.0.0.1 MY_NEW_HOST_NAME MY_NEW_HOST_NAME
...

После этих манипуляций новое наименование хоста останется навсегда. Для проверки этого выключите WSL и включите заново:

wsl --shutdown
wsl

Настройка прав на файлы и директории в Docker-контейнере для Linux-систем

При использовании стека PHP+DOCKER (+ все остальное) на Linux-системах у вас, скорее всего, возникнут проблемы с правами в контейнере. Нельзя будет записать какой-либо файл в директорию, начнут вылетать ошибки при сохранении логов и всё в таком духе. При использовании фреймворков, например, такого как Laravel, эта проблема уже решена его разработчиком, а во всех других случаях решать коллизию с правами нужно своими руками. Ниже приведён один из простых вариантов решения.

(далее…)

Мониторинг ресурсов в Линукс

Как и в других операционных системах, в Линуксе иногда нужно следить за количеством свободного пространства на диске, использованной оперативной памяти, списком активных программ и открытыми файлами. Для всего этого существует ряд утилит — ps, top, lsof, free, df и du.

(далее…)

Работа с архивами в Линуксе

В данной заметке мы рассмотрим основные архиваторы Линукса — zip, tar, gzip и bzip2.

(далее…)

Особенности консоли Линукс

В данной заметке собраны интересные особенности консоли Линукс и некоторые полезные команды, которыми часто пренебрегают.

(далее…)

Установка PHP на Linux

Установка PHP на Linux-системах отличается от подобного процесса в Windows-системах. Здесь она в большинстве случаев происходит через консоль, хотя есть возможность сделать это и через графический интерфейс пакетного менеджера, например, через Synaptic.

(далее…)

Создать ярлык в Linux (Alt Linux)

Если программа в Linux’e (множестве дистрибутивов) при установке не создает ярлыки в стартовом меню самостоятельно, то это придется сделать вручную. Описанным ниже способом можно также создавать ярлыки для сайтов из Интернета и директорий на компьютере.

(далее…)

Настройка xDebug + Docker + Windows 10 и Linux Mint 20