Установка сертификата SSL в Proxmox Mail Gateway

ssl proxmox mail gateway

SSL в Proxmox Mail Gateway используется как для шифрования почтового трафика, так и для доступа к WEB консоли администратора. Из коробки доступен самоподписанный сертификат, но в корпоративной среде лучше использовать либо подписанный доменным центром сертификации либо, что лучше, коммерческий.

В общем случае установка сертификата сводится к тому, чтобы скопировать все части сертификата (ключ, сертификат, промежуточный и корневой сертификаты) в один файл и положить его в /etc/pmg/pmg-api.pem

Процедура установки сертификата

Вот что написано в официальной документации по данному вопросу.

Выпустить сертификат командой:

openssl req -newkey rsa:2048 -nodes -keyout domain.key -out domain.csr

Далее необходимо подписать запрос и получить сертификат. Сделать это можно как подписав его непосредственно средствами openssl получив самоподписанный сертификат, либо отправив запрос в доменный центр сертификации либо в коммерческий центр сертификации.

Как получить сертификат в доменном центре сертификации я рассказывал в статье SSL сертификат в Linux.

Когда вы загрузите полученный сертификат на сервер то необходимо объединить все части SSL сертификата в один файл.

-----BEGIN RSA PRIVATE KEY-----
 (ваш приватный ключ (domain.key)
 -----END RSA PRIVATE KEY-----
 -----BEGIN CERTIFICATE-----
 (Сертификат вашего домена: domain.crt)
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 (Промежуточный сертификат коммерческого центра сертификации: commercial_ca.crt)
 -----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
 (Корневой сертификат центра сертификации: root_ca.crt)
 -----END CERTIFICATE-----

Сделать это можно командой:

cat domain.key cert.cer >/etc/pmg/pmg-api.pem

В моем случае я подписывал сертификат доменным центром сертификации. Для получения рабочей конфигурации мне хватило только ключа и подписанного сертификата сервера. Затем необходимо перезапустить сервис pmgproxy

systemctl restart pmgproxy

Установка сертификата Let’s Encrypt

С версии 6.4-3 в Proxmox Mail Gateway появилась возможность использования сертификатов Let’s Encrypt. Функция доступна прямо в веб-интерфейсе панели управления.

Установка сертификата SSL в Proxmox Mail Gateway
Раздел сертификаты в Proxmox Mail Gateway 6.4-3 и выше

Далее на вкладке ACME Accounts необходимо добавить аккаунт.

Установка сертификата SSL в Proxmox Mail Gateway
Кликаем кнопку Add чтобы добавить аккаунт для получения Let’s Encrypt сертификатов

Следующим шагом заполняем простую форму, принимаем соглашение и жмем Register.

Установка сертификата SSL в Proxmox Mail Gateway
Создание нового аккаунта для получения сертификатов Let’s Encrypt в Proxmox Mail Gateway

Следующим шагом идем на вкладку Certificates.

Установка сертификата SSL в Proxmox Mail Gateway
На вкладке Certificates можно загрузить готовый сертификат без необходимости манипуляций в консоли или выпустить сертификат Let’s encrypt

Для выпуска сертификата вам необходимо указать доменное имя вашего сервера и протоколы к которым он будет привязан. API — это веб интерфейс и доступ к управлению PMG с помощью скриптов через API, SMTP — соответственно для SMTP протокола.

Установка сертификата SSL в Proxmox Mail Gateway
Запрос сертификата

Важный нюанс. Для получения Let’s encrypt сертификата вам необходимо подтвердить право владения доменом. Сделать это можно двумя способами по HTTP или с помощью DNS.

Первый вариант самый простой, вам просто нужно открыть 80-й порт на шлюзе Proxmox Mail Gateway и межсетевом экране, чтобы сервера ACME могли проверить доступность вашего домена по http. Во втором случае предварительно необходимо настроить плагин для проверки с помощью DNS. Добавляется он на вкладке ACME Accounts.

Установка сертификата SSL в Proxmox Mail Gateway
Добавление плагина подтверждения по DNS

Как видно из формы существует много API с, помощью которых можно подтверждать домены. Для каждого из них необходима регистрация в соответствующем сервисе и получение необходимых данных для настройки плагина. А именно логина, пароля, секретного кода api и т.д. Мне показался данный способ достаточно замороченным и я настраивал подтверждение обычным HTTP. Не смотря на кажущуюся проблему в безопасности нужно заметить, что 80-й порт открывается только в момент проверки домена и все остальное время ничего на этом порту не висит.

Последним шагом выпускаем сертификаты кнопкой Order Certificate Now.

Установка сертификата SSL в Proxmox Mail Gateway
Выпуск Let’s encrypt сертификата в Proxmox Mail Gateway

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

Дополнительные материалы

Если есть что добавить прошу в комментарии.

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

Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.

  1. Anthony

    Спасибо большое! Статья помогла, а то загрузил не тот серт и сломал весь веб)

    Ответить