bg-tutorials

Как установить SSL-сертификат на сервере Courier IMAP

В этом руководстве вы узнаете, как установить SSL-сертификат на сервер Courier IMAP. Вы объединяете сертификат, приватный ключ и цепочку CA в один PEM-файл, указываете на него в настройке Courier TLS_CERTFILE и перезапускаете службу, чтобы IMAPS и POP3S начали использовать новый сертификат.

Создание CSR-кода на сервере Courier IMAP

Если вы уже создали CSR и получили SSL-файлы, пропустите первую часть и переходите сразу к шагам установки.

CSR (Certificate Signing Request) — это блок закодированного текста, содержащий ваши контактные данные. Вы создаёте его и отправляете в удостоверяющий центр (CA) для прохождения проверки SSL. При создании CSR также генерируется соответствующий приватный ключ, который остаётся на вашем сервере и необходим для установки. У вас есть два варианта:

Чтобы открыть файл CSR, используйте любой текстовый редактор. При заказе сертификата скопируйте весь блок, включая строки BEGIN и END. Храните файл приватного ключа в безопасности: вам нужно будет объединить его с PEM-файлом на этапе установки.

Установка SSL-сертификата на сервер Courier IMAP

После прохождения проверки ваш CA отправит вам по электронной почте ZIP-архив с SSL-файлами: основным (серверным) сертификатом и одним или несколькими промежуточными сертификатами (CA). Извлеките архив на сервере и выполните следующие шаги.

Шаг 1: Объедините сертификат, цепочку и ключ в один PEM-файл

Courier считывает сертификат и приватный ключ из одного PEM-файла, указанного в TLS_CERTFILE. Объедините файлы в следующем порядке: сначала серверный сертификат, затем промежуточную цепочку CA, затем приватный ключ. Из каталога с извлечёнными файлами выполните:

cat yourdomain.crt yourdomain.ca-bundle yourdomain.key > imapd.pem
sudo mv imapd.pem /etc/courier/imapd.pem
sudo chmod 600 /etc/courier/imapd.pem

Если ваш CA предоставил промежуточные сертификаты в виде отдельных файлов, а не единого .ca-bundle, укажите каждый из них между сертификатом и ключом. Готовый PEM-файл должен выглядеть так:

-----BEGIN CERTIFICATE-----
(the text of your primary SSL certificate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(the text of the intermediate / CA chain certificate)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
(the text of your private key)
-----END PRIVATE KEY-----

Более старые ключи могут иметь метку BEGIN RSA PRIVATE KEY вместо BEGIN PRIVATE KEY — оба варианта допустимы. Ключ не должен быть зашифрован парольной фразой, так как Courier загружает его без запроса пароля. PEM-файл должен быть доступен для чтения только root-пользователю (команда chmod 600 выше), поскольку он содержит приватный ключ.

Если вы предпочитаете хранить приватный ключ в отдельном файле, не включайте ключ в PEM-файл и укажите путь к ключу в параметре TLS_PRIVATE_KEYFILE в конфигурации (Шаг 2). Если ключ уже встроен в TLS_CERTFILE, отдельный файл ключа не является обязательным.

Шаг 2: Укажите Courier путь к вашему PEM-файлу

Откройте конфигурационный файл, который Courier использует для IMAP через SSL. Путь зависит от вашего дистрибутива: обычно это /etc/courier/imapd-ssl, а в некоторых системах — /usr/lib/courier-imap/etc/imapd-ssl. Отредактируйте его с помощью текстового редактора, например:

sudo nano /etc/courier/imapd-ssl

Найдите строку TLS_CERTFILE (или добавьте её, если она отсутствует) и укажите путь к вашему PEM-файлу:

TLS_CERTFILE=/etc/courier/imapd.pem

Если вы оставили приватный ключ в отдельном файле на Шаге 1, также укажите путь к нему:

TLS_PRIVATE_KEYFILE=/etc/courier/imapd.key

Пока вы находитесь в этом файле, усилите настройки TLS. Удалите или закомментируйте любую строку, принудительно задающую устаревший протокол, например TLS_PROTOCOL=SSL3: SSLv3 и ранние версии TLS 1.0 и 1.1 небезопасны и должны быть отключены. Настройте Courier на требование TLS 1.2 или выше. Параметр TLS_PROTOCOL применяется к выделенному SSL-порту (IMAPS), а TLS_STARTTLS_PROTOCOL применяется к STARTTLS на стандартном порту:

TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2

Значение TLSv1.2 означает «TLS 1.2 или выше», поэтому TLS 1.3 всё равно будет использоваться при согласовании, если ваша сборка OpenSSL это поддерживает. Вам не нужно устанавливать TLS_TRUSTCERTS, чтобы предоставлять сертификат почтовым клиентам — эта переменная используется только для проверки клиентских сертификатов.

Debian, Ubuntu и Devuan: в этих дистрибутивах Courier собран на основе GnuTLS, а не OpenSSL, и параметр TLS_PROTOCOL не действует. Вместо этого задайте минимальный протокол с помощью TLS_PRIORITY, например TLS_PRIORITY=NORMAL:-VERS-TLS1.0:-VERS-TLS1.1 (при этом остаются только TLS 1.2 и 1.3). Параметр TLS_CERTFILE и объединённый PEM-файл, описанный выше, одинаковы для обеих сборок, поэтому сама установка сертификата не меняется.

Примечание о параметрах Diffie-Hellman: современные пакеты Courier автоматически создают файл параметров DH (с помощью сценария mkdhparams и периодической задачи cron) и считывают его из TLS_DHPARAMS, поэтому вручную создавать его при стандартной установке больше не нужно. Старая директива TLS_DHCERTFILE была удалена в Courier 4.15. Если mkdhparams ещё никогда не запускался на вашем сервере, запустите его один раз, чтобы создать файл.

Если вы также используете POP3S (порт 995), откройте конфигурационный файл POP3 /etc/courier/pop3d-ssl (или /usr/lib/courier-imap/etc/pop3d-ssl) и примените те же настройки. Вы можете использовать тот же PEM-файл повторно или создать отдельный /etc/courier/pop3d.pem с тем же содержимым:

TLS_CERTFILE=/etc/courier/pop3d.pem
TLS_PROTOCOL=TLSv1.2
TLS_STARTTLS_PROTOCOL=TLSv1.2

Шаг 3: Перезапустите Courier

Перезапустите Courier, чтобы он загрузил новый сертификат. В большинстве дистрибутивов на основе systemd перезапустите SSL-службы и демон аутентификации:

sudo systemctl restart courier-imap-ssl
sudo systemctl restart courier-pop3-ssl
sudo systemctl restart courier-authdaemon

В некоторых пакетах вместо этого используется единая объединённая служба. Если указанные выше службы не найдены, попробуйте:

sudo systemctl restart courier

В системе, где не используется systemd, выполните перезапуск с помощью собственных сценариев Courier:

/usr/lib/courier-imap/libexec/imapd-ssl.rc restart
/usr/lib/courier-imap/libexec/pop3d-ssl.rc restart

После успешного перезапуска службы ваш новый SSL-сертификат начинает применяться для IMAPS (порт 993) и POP3S (порт 995), а также для STARTTLS на портах 143 и 110.

Проверка установки SSL

После установки убедитесь, что сертификат передаётся корректно. В терминале откройте TLS-соединение с портом IMAPS и просмотрите сертификат, который предоставляет сервер:

openssl s_client -connect mail.yourdomain.com:993 -servername mail.yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

Для POP3S используйте порт 995. Чтобы вместо этого проверить STARTTLS на стандартном порту IMAP, выполните:

openssl s_client -connect mail.yourdomain.com:143 -starttls imap

Первая команда передаёт соединение через конвейер в openssl x509 и выводит эмитента, субъект (общее имя) и сроки действия, чтобы вы могли убедиться, что предоставляется нужный сертификат. Команда STARTTLS показывает полное согласование соединения: убедитесь, что эмитент и цепочка указаны верно и что ближе к концу вывода появляется строка Verify return code: 0 (ok). Для получения полного отчёта о вашем сертификате и его настройках используйте наш SSL Checker.

Часто задаваемые вопросы

В каком порядке следует объединять файлы в PEM-файле Courier?

Сначала серверный сертификат, затем промежуточная цепочка (CA), затем приватный ключ — всё в одном PEM-файле. Courier считывает этот файл из TLS_CERTFILE и предоставляет клиентам полную цепочку. Приватный ключ должен быть незашифрованным (без парольной фразы).

Где находится конфигурационный файл SSL для Courier?

IMAP через SSL настраивается в файле /etc/courier/imapd-ssl, а POP3 через SSL — в файле /etc/courier/pop3d-ssl. В некоторых дистрибутивах эти файлы находятся в /usr/lib/courier-imap/etc/. Настройки STARTTLS для незашифрованных портов находятся в соответствующих файлах imapd и pop3d.

Нужны ли мне параметры Diffie-Hellman (DH) для Courier?

Вручную — нет, для обычной установки. Современные пакеты Courier автоматически создают файл параметров DH с помощью сценария mkdhparams и обновляют его по расписанию, считывая его из TLS_DHPARAMS. Более старая директива TLS_DHCERTFILE была удалена в Courier 4.15. Запустите mkdhparams один раз только в том случае, если файл DH ещё не существует.

Как отключить SSLv3 и старые версии TLS в Courier?

Удалите любую строку TLS_PROTOCOL=SSL3 и установите TLS_PROTOCOL=TLSv1.2 в файлах imapd-ssl и pop3d-ssl. Установите TLS_STARTTLS_PROTOCOL=TLSv1.2 для портов STARTTLS. Значение TLSv1.2 означает «1.2 или выше», поэтому TLS 1.3 используется автоматически, если ваш OpenSSL это поддерживает.

Как проверить сертификат после перезапуска Courier?

Подключитесь к почтовому порту с помощью OpenSSL и просмотрите предоставляемый сертификат: openssl s_client -connect mail.yourdomain.com:993 для IMAPS, либо добавьте -starttls imap для порта 143. Убедитесь, что эмитент и цепочка указаны верно и что в выводе присутствует Verify return code: 0 (ok).

Сэкономьте 10% на SSL-сертификатах при заказе сегодня!

Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

Детальное изображение дракона в полете
Написано

Опытный автор контента, специализирующийся на SSL-сертификатах. Превращает сложные темы кибербезопасности в понятный, увлекательный контент. Вносите свой вклад в повышение уровня цифровой безопасности с помощью впечатляющих рассказов.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.