zimbra 8.6 Let’s Encrypt cert

zmproxyctl stop
zmmailboxdctl stop

On RedHat/CentOS 6 you will need to enable the EPEL repository before install.

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

yum repolist

нужно чтобы была строка похожая на

epel Extra Packages for Enterprise Linux 5 - i386 4,320+1,408

далее

yum install git
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

./letsencrypt-auto certonly --standalone

Последняя команда — собственно запуск скрипта. Скрипт задаст два вопроса.

email и домен. ответы можно положить в файл и запускать с другим ключем из скрипта.  Скорей всего начнет ругатся на 443 и 80 порты. нужно временно отключить файрвол

 service iptables stop
//снова запускаем скрипт и радуемся
./letsencrypt-auto certonly --standalone
сd /etc/letsencrypt/live/grz.grom.ru
ll

и наблюдаем файлы сертификата. осталось внедрить их в систему.

# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem


выдаст ошибку

XXXXX ERROR: Invalid Certificate: cert.pem: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

error 2 at 1 depth lookup:unable to get issuer certificate
 

вставляю в chain.pem серт по ссылке
https://www.identrust.com/certificates/trustid/root-download-x3.html
добавляю в него
——END CERTIFICATE——
——BEGIN CERTIFICATE——

проверяю


# /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
** Verifying cert.pem against privkey.pem
Certificate (cert.pem) and private key (privkey.pem) match.
Valid Certificate: cert.pem: OK

вот теперь все пучком — остался deploy

но сначала backup ssl

cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")

copy private key

 cp /etc/letsencrypt/live/grz.grom.ru/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
root@zimbra86:/etc/letsencrypt/live/zimbra86.zimbra.io
 # /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem
 ** Verifying cert.pem against /opt/zimbra/ssl/zimbra/commercial/commercial.key
 Certificate (cert.pem) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
 Valid Certificate: cert.pem: OK
 ** Copying cert.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Appending ca chain chain.pem to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
 ** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
 ** NOTE: mailboxd must be restarted in order to use the imported certificate.
 ** Saving server config key zimbraSSLCertificate...failed.
 ** Saving server config key zimbraSSLPrivateKey...failed.
 ** Installing mta certificate and key...done.
 ** Installing slapd certificate and key...done.
 ** Installing proxy certificate and key...done.
 ** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
 ** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
 ** Installing CA to /opt/zimbra/conf/ca...done.
zmcontrol restart

LVM. добавление диска. расширение раздела.

Если используется LVM то все просто.

fdisk /dev/sdd
Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый цилиндр (1-3524, по умолчанию 1): 
Используется значение по умолчанию 1
Последний цилиндр или +size или +sizeM или +sizeK (1-3524, по умолчанию 3524): 
Используется значение по умолчанию 3524
Команда (m для справки): p
Диск /dev/sdd: 28.9 ГБ, 28991029248 байт
255 heads, 63 sectors/track, 3524 cylinders
Единицы = цилиндры по 16065 * 512 = 8225280 байт
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdd1 1 3524 28306498+ 83 Linux
Команда (m для справки): w
Таблица разделов была изменена!

Необходимо выяснить название группы томов.

vgdisplay
  --- Volume group ---
  VG Name               vgname
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                7
  Open LV               7
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               137.99 GiB
  PE Size               4.00 MiB
  Total PE              35326
  Alloc PE / Size       19967 / 78.00 GiB
  Free  PE / Size       15359 / 60.00 GiB
  VG UUID               10Ipjk-btDM-NRQP-zXdp-pfeX-9ngh-wLCIUi

создать физический том для созданного раздела

pvcreate /dev/sdd1
Writing physical volume data to disk "/dev/sdd1"
Physical volume "/dev/sdd1" successfully created

добавить в группу томов

vgextend vgname/dev/sdd1
Volume group "vgname" successfully extended

расширить логический том на все доступное пространство

lvextend -l +100%FREE /dev/mapper/vgname-opt

ресайз раздера

resize2fs /dev/mapper/vgname-opt

проверка df -h

DS18B20

Получить значение с датчика можно по разному. Самый примитивный способ — библиотека DallasTemperature.h. У ее использования есть минусы — она не слишком быстрая, и занимает много места в памяти.

DallasTemperature.h

Для получения значения температуры от датчика используется следующий код.

#include <OneWire.h>
#include <DallasTemperature.h>

OneWire ow_ds(2);//датчик 0 на пин 2
DallasTemperature dt_ds(&ow_ds);
float cel_ds = 99; //значение по умолчанию

void loop() {

dt_ds.requestTemperatures();
delay(2000);
cel_ds = dt_ds.getTempCByIndex(0);

Serial.println(«cel_ds = » + String(cel_ds));//вывод значения в порт

delay(2000);

}

rouncube Wrong ‘mbstring.func_overload’ option value

Из админики при попытки открыть вебпочту выходит это ошибка.

ERROR: Wrong 'mbstring.func_overload' option value and it wasn't possible to set it to required value (0). Check your PHP configuration (including php_admin_flag).

рулится через  /etc/httpd/conf.d/roundcube путем добавления туда

секция <Directory /usr/share/roundcubemail/>
php_admin_value mbstring.func_overload 0

или задать этот параметр через php.ini

 

работа в vi (и vim)

Файл настройки: ~/.vimrc
Можно редактировать файлы через сеть, например
:e <scp|ftp|ftps>://user@host/path/to/the/file.txt
:Ex или :e ./ — файловый менеджер

== Основы ==
hjkl                      перемещение в разные стороны
i                         режим вставки
I                         добавление в начало строки
a                         режим добавления
A                         добавление в конец строки
o                         добавить строку сразу за текущей
O                         добавить строку перед текущей
R                         писать поверх имеющегося текста
u, :u[ndo]                отмена предыдущего действия (undo)
CTR-R, :red[o]            отмена отмены предыдущего действия (redo)
dd                        вырезать (удалить) строку
cc                        удалить и начать редактирование
yy                        копировать строку
p                         вставить из буфера обмена
<n>d                      удалить n+1 строку
<n>y                      скопировать n+1 строку
ESC                       перейти в режим просмотра
DEL                       удалить следующий символ
:<n>                      перейти на строку #n
%                         перейти к парной скобке
:e **/filename.c          редактировать файл (с поиском по имени)
:w [fname]                записать изменения
:wa                       сохранить изменения во всех файлах
:q                        выйти из редактора
:q!                       выйти из редактора, не сохраняя изменения
:color <name>             выбор цветовой схемы. цветвые схемы:
/usr/local/share/vim/vim72/colors/*.vim
:pwd                      текущий каталог
:cd [path]                перейти в другой каталог
:!команда                 выполнить команду — man, git, и так далее
стрелочками веерх и вниз можно автодополнять
команды и искать по истории
CTR+p или CTR+n           автоматическое дополнение текста
(в режиме редактирования)
CTR+r,=,<expr>            вставить выражение, например 5*2 — 3
(в режиме редактирования)
CTR+u, CTR+d              Page Up / Page Down
CTR+y, CTR+e              Перемотка вверх/вниз без движения курсора

== Подсветка синтаксиса ==
:syntax on                включить подсветку
:syntax off               выключить подсветку (по умолчанию)

== Перенос строк ==
:set wrap                 разрешить word wrap (по умолчанию)
:set nowrap               запретить word wrap

== Печать ==
:ha[rdcopy]                   распечатать документ
:set printoptions=duplex:off  отключить двустороннюю печать

== Сворачивание ==
zc                        свернуть блок
zo                        развернуть блок
zM                        закрыть все блоки
zR                        открыть все блоки
za                        инвертирование
zf                        см :set foldmethod=manual
:set foldenable           включить свoрачивание
:set foldmethod=syntax    сворачивание на основе синтаксиса
:set foldmethod=indent    сворачивание на основе отступов
:set foldmethod=manual    выделяем участок с помощью v и говорим zf
:set foldmethod=marker    сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока

== Маркеры ==
ma                        установить локальный маркер a
mB                        установить глобальный маркер B
`c                        перейти к локальному маркеру c
`0                        вернуться на позицию, на которой закончили
работу при закрытии vim
:marks                    просмотр маркеров
set viminfo=’1000,f1      маркеры пишутся в ~/.viminfo, восстанавливаясь
при следующем запуске vim. маркер » хранит
последнюю позицию курсора в файле
== Сессии ==
mksession file.session    сохранить текущую сессию
source file.session       восстановить ранее сохраненную сессию

== Макросы ==
qa                        записать макрос с именем a
q                         в режиме записи макроса: закончить запись
@a                        выполнить макрос с именем a
@@                        повторить последний макрос

== Регистры ==
«ayy                      скопировать строку в регистр a
«bdd                      вырезать строку и поместить в регистр b
«С2d                      вырезать три строки и дописать в конец
регистра C
:reg [name1][name2][…]  просмотреть содержимое регистров

== Выделение ==
v + hjkl                  выделение текста
SHIFT + v                 выделить строку
CTR + v                   выделение прямоугольника
p                         вставить
y                         копировать
d                         удалить
gu                        к нижнему регистру
gU                        к верхнему регистру

== Отступы ==
[#]>                      сдвинуть выделенное вправо
[#]<                      сдвинуть выделенное влево
[#]>>                     сдвинуть строку вправо
[#]<<                     сдвинуть строку влево
set tabstop=#             для табуляции используется # пробелов
set shiftwidth=#          в командах отступа используется # пробелов
set [no]expandtab         заменять ли табуляцию на соответствующее
число пробелов

== Поиск и замена в файле ==
/Выражение               поиск выражения в файле
\cВыражение              поиск без учета регистра
n                        следующее совпадение
N                        предыдущее совпадение
:%s/foo/bar/gi           замена строк, см http://eax.me/regular-expr/

== Поиск по всему проекту ==
:vimgrep /EXPR/ **/*.c   поиск по регулярному выражению
:copen                   показать все найденные места
:close                   скрыть все найденные места
:cn                      переход к следующему результату
:cp                      переход к предыдущему результату

== Нумерация строк ==
:set number              включить нумерацию строк
:set nonumber            отключить нумерацию строк

== Работа с вкладками (a.k.a табами) ==
:tabnew [fname]          создать таб
:tabs                    вывести список табов
:tabn                    следующий таб
:tabp                    предыдущий таб
<n>gt                    перейти на таб #n
gt                       следующий таб
gT                       предыдущий таб
:tabm +1                 переместить таб вперед на одну позицию
:tabm -1                 переместить таб назад на одну позицию
:tabm 2                  переместить таб на заданную позицию
(нумерация начинается с нуля)

== Работа с окнами ==
:split                   горизонтальное разбиение
:vsplit                  вертикальное разбиение
Ctr+W, затем
с                      закрыть окно
+-                     изменение высоты текущего окна
<>                     изменение ширины текущего окна
=                      установить равный размер окон
hjkl или стрелочки     перемещение между окнами

== Проверка орфографии ==
mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.sug
wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.spl
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.sug
wget http://ftp.vim.org/vim/runtime/spell/en.ascii.spl

:set spell spelllang=ru,en       включить проверку орфографии
:set nospell                     выключить проверку орфографии
]s                               следующее слово с ошибкой
[s                               предыдущее слово с ошибкой
z=                               замена слова на альтернативу из списка
zg                               good word
zw                               wrong word
zG                               ignore word

== Работа с кодировкой ==
e ++enc=<имя кодировки>         Редактирование файла в ??? кодировке
w ++enc=<имя кодировки>         Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r  Список автоматически определяемых
кодировок в порядке убывания
приоритета

== Другое ==
:set [no]wildmenu          При авто-дополнении в командной строке над
ней выводятся возможные варианты
:set list                  Отображать табуляцию и переводы строк
q:                         История команд
.                          Повторение последней команды