Рубрика: Ошибки

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

Недавно мне попался первый проект с привязкой функционала к мессенджеру Макс. Первым делом зарегистрировал бота через местного БотФазера (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 начал работать корректно.

[1045] Access denied for user — Ошибка подключения к БД из PhpStorm’a

Оказывается я уже полгода не писал постов в блог и нужно бы освежить. Проекты идут один за одним и время проходит незаметно. Ну да ладно, перейдем к проблеме и способу её решения.

Сегодня обновлял окружение разработки для одного из поддерживаемых проектов. Одним из изменений было обновление версии MySql с 5.7 на 8. Все локальное окружение, как обычно, крутится на Докере. Обновил docker-compose.yml, пересобрал проект, запустил и при соединении PhpStorm’a к БД увидел вот такую ошибку:

... [1045] Access denied for user '...'@'xxx.xxx.xxx.xxx' ...

После проверки правильности логинов, паролей и остальных параметров подключения, проблема осталась, пересборка контейнеров с очищением всех кешей тоже не помогла. Решение оказалось простым, я остановил Докер, зачистил директорию с данным MySql-контейнера (путь до этой директории лежит в параметре volumes) и запустил Докер заново со сборкой: docker-compose up —build, после этого все работало нормально.

Ошибка: Unable to find the wrapper «https»

Если PHP выдает подобную ошибку:

PHP Warning:  copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line ...

То, возможно, у вас отсутствует модуль PHP под наименованием «openssl». Для его установки достаточно ввести подобную команду:

sudo apt-get install php8.1-openssl

Убедитесь в наличии пакета «php8.1-openssl». Если он отсутствует, то попробуйте найти подходящий через «apt-cache search XXX». Обязательно устанавливайте модуль для текущей используемой версии PHP, в примере выше используется 8.1.

Примеры решения проблемы взаимодействия Docker и сетевого экрана ufw в Linux-системах.

stackoverflow.com/questions/30383845/what-is-the-best-practice-of-docker-ufw-under-ubuntu

Ошибка установки xDebug в Docker на Linux Mint 20.2 (uma)

При установке xDebug в Docker на Linux’e может появляться вот такая ошибка:

...
The command '/bin/sh -c pecl install xdebug' returned a non-zero code: 1
...

Сама команда из Dockerfile выглядит так:

RUN pecl install xdebug

Для её исправления достаточно указать конкретную версию xDebug, например:

RUN pecl install xdebug-3.1.1
(далее…)

Ошибка установки cookie при запуске тестов (codeception) на Yii2 в PhpStorm

При запуске тестов (Codeception) из PhpStorm для Yii2 может появляться ошибка перезаписи cookie.

(далее…)