Архив рубрики: Linux

Наработки и статьи по работе с Linux

curl: SSL_CTX_use_certificate:ca md too weak

Со стародавних времен часть моих скриптов для получения содержимого страниц с сертификатом p12 используют конструкцию вида:

$res='<code>curl -k --key /home/petya/abc.key --cert /home/petya/abc.crt -o amounts.php https://vasya.ru --data-ascii '</code>;

Однако после обновления OpenSSL появилась ошибка вида:

curl: SSL_CTX_use_certificate:ca md too weak

, которая говорит от том, что шифрование которое было использовано для генерации сертификата слишком слабое.

Решение: перегенирировать сертификат с md5 на sha256. Для этого в файле ca.config нужно поправить:

#default_md	= md5
default_md	= sha256

Интересное поведение mysql при выборке из таблицы содержащей NULL

Столкнулся с интересным поведением MySQL при выборке из таблицы содержащей NULL в качестве значения.  Очередной подвох однако.. Пусть например есть таблица:

mysql> select cat_idx,uuid from categories where tar_id=109 and common=0 and above=1 and archive=0;
+---------+------+
| cat_idx | uuid |
+---------+------+
|       0 | NULL |
|       5 | NULL |
|      10 | NULL |
|      11 | NULL |
|      15 | NULL |
|      28 | peni |
+---------+------+
6 rows in set (0.00 sec)

Хотим получить все значения не содержащие uuid=»peni». Логично было бы использовать такой запрос:

mysql> select cat_idx,uuid from categories where tar_id=109 and common=0 and above=1 and archive=0 and uuid<>"peni";
Empty set (0.00 sec)

Аааа. А куда делись остальные значения? А вот потому что с точки зрения MySQL правильно будет:


mysql> select cat_idx,uuid from categories where tar_id=109 and common=0 and above=1 and archive=0 and (uuid<>"peni" or uuid is null);
+---------+------+
| cat_idx | uuid |
+---------+------+
|       0 | NULL |
|       5 | NULL |
|      10 | NULL |
|      11 | NULL |
|      15 | NULL |
+---------+------+
5 rows in set (0.00 sec)


Вывод: при создании таблиц нужно стараться заполнять поля значениями «по умолчанию». Чтобы NULL не было в принципе. Тогда и возможной ошибки не будет.

 

mysqli(): Server sent charset (255) unknown to the client. Please, report to the developers

Сия ошибка происходит если сервер mysql новый (например 8.х), а клиент старый (например php 5.6). Скорее всего они еще и к тому же разнесены на разные сервера. Что такое? А просто разные кодировки по умолчанию у клиента и сервера.

Как лечить, есть два варианта

1) Обновить клиент — т.е. php и mysql-client

2) Проставить в настройках сервера mysql принудительные кодировки по умолчанию

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

proxmox: cluster not quorate — extending auth key lifetime

Одним прекрасным солнечным утром, после перезагрузки одного кластера Proxmox получил ошибку в syslog : cluster not quorate — extending auth key lifetime и отказывающиеся запускаться виртуалки.

Экстренное решение (до первого ребута):

pvecm e 1

Не спешное правильное решение (подсказанное на канале ru_proxmox в телеграмме) :

1) Остановить сервис corosync

2) Поправить файл /etc/pve/corosync.conf

  •  в секцию totem -> intreface добавить тег transport : udpu
  •  тег secauth поменять на off
  •  увеличить на 1 тег config_version

С чем связано? С «ломающим» обновлением..

Snowflake — ssh клиент под Linux

Присматриваюсь время от времени к новым SSH клиентам на замену PAC, он-же теперь asbru-cm. Не всё устраивает в стабильности работы и удобстве, а развития нет. Но и в новых клиентах пока всё еще хуже. Попробовал Snowflake — выглядит хорошо. Но совсем нет функционала: хранение переменных, автоматическое выполнение скриптов (комманд) после входа в SSH. Предлагаемые в качестве замены сниппеты — совсем не годятся. Значит пока снова ждем..