Сертификат для веб-консоли Kerio Control 7.1.0 | Vladislav Artukov

Сертификат для веб-консоли Kerio Control 7.1.0 | Vladislav Artukov Сертификаты

Github – vasyakrg/kerioconnect-ssl-letsencrypt: install and auto-renew ssl certificate for kerio-connect 9.x by let’s encrypt

этот скрипт скачивает последнюю версию Kerio Connect с сайта-производителя, нужно лишь правильно выставить переменную wget_kci_path в terraform/terraform.tfvars, но вы можете пропустить этот шаг, если уже установили керио сами.

Использование let’s encrypt с kerio connect

Сертификат для веб-консоли Kerio Control 7.1.0 | Vladislav Artukov
Let’s Encrypt возможно лучшая вещь, произошедшая в Интернет за последние лет десять. Это сервис, предоставляющий абсолютно бесплатно криптографические сертификаты X.509 для TLS шифрования (HTTPS). Главный минус, что сертификат выдается на 90 дней, но мы попробуем автоматизировать процедуру замены сертификата.

Отключаем http
Остановите в Kerio Connect если он запущен и установите режим запуска вручную, чтобы он не активировал себя снова при перезапуске. Измените служебный порт HTTPS на 8843 в панели администратора. Установка не будет работать иначе, потому что Certbot нуждается в портах 80 и 443 для проверки домена и получения сертификата.

Установим Nginx
Так как мы не хотим что-либо делать вручную, а также иметь возможность использовать стандартные веб-порты, нам необходимо установить реверс-прокси перед Kerio Connect

mkdir -p /var/www/mail
chown www-data:www-data /var/www/mail
apt-get install nginx ssl-cert

Создадим файл /etc/nginx/sites-available/kerio-connect.conf со следующим содержанием

server {
listen 80;
server_name nash_site; # заменить на адрес своего сайта
server_name_in_redirect off;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
listen 443 ssl;
server_name nash_site; # заменить на адрес своего сайта

ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; 
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

location /.well-known {
alias /var/www/mail/.well-known;
}

location / {
proxy_pass https://localhost:8843;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-Port $remote_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
chunked_transfer_encoding on;
proxy_connect_timeout 6000;
proxy_send_timeout 6000;
proxy_read_timeout 6000;
send_timeout 6000;
}
}

Слинкуем сайт с nginx:

ln -s /etc/nginx/sites-available/kerio-connect.conf /etc/nginx/sites-enabled/kerio-connect.conf

Проверим конфигурацию:

nginx -t

Если ошибок нет, перегружаем nginx:

systemctl restart nginx.service

Установка Certbot

Про сертификаты:  РОССЕЛЬХОЗНАДЗОР: О СЛУЧАЯХ НЕДОСТОВЕРНОГО ДЕКЛАРИРОВАНИЯ ЗЕРНА И ПРОДУКТОВ ЕГО ПЕРЕРАБОТКИ / Администрация Советского района Ростовской области

Теперь установим программу, которая будет за нас обновлять сертификаты

wget https://dl.eff.org/certbot-auto
chmod a x certbot-auto

Запустим

./certbot-auto

Создадим сертификат.

./certbot-auto certonly --webroot -w /var/www/mail -d nash_site

Если вы запускаете в первый раз, вам нужно будет ввести свой адрес электронной почты для экстренной ситуации, например, для отзыва сертификата. Это нужно сделать только один раз и после этого SSL-сертификат будет создан.

Начинаем использовать

Изменим в файле /etc/nginx/sites-available/kerio-connect.conf строки

ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

на:

ssl_certificate /etc/letsencrypt/live/nash_site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nash_site/privkey.pem;

Перезагрузим Nginx

systemctl restart nginx.service

Чтобы упростить обновление Kerio Connect, просто свяжите созданный сертификат и ключ с соответствующей папкой внутри иерархии Kerio Connect

ln -s /etc/letsencrypt/live/nash_site/fullchain.pem /opt/kerio/mailserver/sslcert/mail.crt
ln -s /etc/letsencrypt/live/nash_site/privkey.pem /opt/kerio/mailserver/sslcert/mail.key

Теперь заходим в панель управления Kerio Connect, выбираем Configuration > SSL Certificates и смотрите что там за сертификаты. Выбирайте установленный от Let’s Encrypt и делайте его активным.
Все, теперь при заходе на Ваш сайт nginx будет автоматически перебрасывать соединение на https, а браузер не будет ругаться на неправильный сертификат.

Обновление.

Осталось автоматизировать процесс перевыпуска сертификатов.
Просто запустим:

./certbot-auto renew

Если сертификат близок к истечению срока действия, он будет автоматически обновлен, в противном случае он будет храниться до следующего запуска.

Сперва скопируем Certbot в удобное место. Например, в /usr/local/bin

cp certbot-auto /usr/local/bin/

Чтобы получить новый сертификат, необходимо перезапустить службы после успешного продления. Создайте скрипт /root/certbot-post-hook.sh со следующим содержимым:

#!/bin/sh
systemctl restart nginx.service
systemctl restart kerio-connect.service

Сделаем его исполняемым и проставим права:

chmod 500 /root/certbot-post-hook.sh
chown root:root /root/certbot-post-hook.sh

Мы будем проверять необходимость перевыпуска сертификата каждую ночь, в 3 часа утра.
Создадим файл /etc/cron.d/certbot:

shell=/bin/sh
path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 3 * * * root perl -e 'sleep int(rand(3600))' && certbot-auto -q renew --post-hook "/root/certbot-post-hook.sh"

Процедура

1) Перейдите по ссылке Продолжить открытие этого узла…

Про сертификаты:  iPhone не может проверить идентификацию сервера - как исправить - Autotak

2) Введите учетную запись администратора и нажмите Войти.

3) Щелкните Ошибка сертификата.

4) Открывается сертификат и сразу же выясняется, что он просрочен и бесполезен.

5) В консоли перейдите к объекту Дополнительные опции, далее к вкладкеWeb Interface. Нажмите Управление сертификатом. Хорошо видна красная дата в поле Доступно до – сертификат просрочен. Щелкните Управление сертификатом.

6) Открывается диалог Cведения о сертификате SSL. В диалоге нажмите Сгенерировать сертификат.

7) Появляется диалог Сгенерировать сертификат. Введите полное имя хоста, название организации, города и региона, выберите страну. Не используйте русские буквы. Нажмите Генерируется.

8) Появлятеся диалоге Потвердить сертификат SSL. Нажмите Принять сертификат.

9) Нажмите OK.

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

Ручная установка сертификата

1) Щелкните Ошибка сертификата, а затем Просмотр сертификата.

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

3) Запускается мастер для импорта сертификатов, в котором на каждом шаге нужно соглашаться.

Оцените статью
Мой сертификат
Добавить комментарий