1. Общие принципы (запомнить один раз)
- Для почтовых серверов и принтеров — всегда RSA
--key-type rsa --rsa-key-size 2048 - Один сертификат = одно имя сервера
- mail.example.ru
- mx1.example.ru
(SAN можно, но для простоты лучше 1:1)
- Postfix всегда использует
fullchain.pem+privkey.pem - Обновлением занимается certbot + systemd timer
→ руками продлевать не нужно
2. Выпуск сертификата (эталонный способ)
Через nginx (рекомендуется)
certbot certonly \
--nginx \
--key-type rsa \
--rsa-key-size 2048 \
-d mail.example.ru \
--cert-name mail-example-rsa
Проверка
openssl x509 -in /etc/letsencrypt/live/mail-example-rsa/cert.pem \
-noout -text | grep "Public Key Algorithm"
Должно быть:
Public Key Algorithm: rsaEncryption
3. Где лежат файлы сертификата
/etc/letsencrypt/live/mail-example-rsa/
├── cert.pem # сам сертификат (обычно не нужен)
├── chain.pem # цепочка (обычно не нужен)
├── fullchain.pem # СЕРТИФИКАТ + ЦЕПОЧКА ← используем
├── privkey.pem # ПРИВАТНЫЙ КЛЮЧ ← используем
4. Настройка Postfix (/etc/postfix/main.cf)
Минимально правильная конфигурация TLS
smtpd_tls_cert_file = /etc/letsencrypt/live/mail-example-rsa/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail-example-rsa/privkey.pem
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_protocols = !SSLv2,!SSLv3
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3
smtp_tls_protocols = !SSLv2,!SSLv3
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1
После изменений:
postfix reload
5. Порты 587 и 465 (если используешь)
В master.cf должны быть включены, остальное можно не усложнять:
587 (submission)
submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
465 (smtps)
465 inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
6. Автопродление сертификатов (один раз проверить)
Проверка таймера
systemctl list-timers | grep certbot
Должен быть certbot.timer.
Тестовое продление
certbot renew --dry-run
Если без ошибок — всё ок.
7. Автоперезагрузка Postfix после продления (рекомендуется)
Создать хук:
nano /etc/letsencrypt/renewal-hooks/deploy/reload-postfix.sh
Содержимое:
#!/bin/sh
systemctl reload postfix
Права:
chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-postfix.sh
8. Что загружать в принтеры / МФУ
Правильно:
- корневой сертификат
ISRG Root X1
wget https://letsencrypt.org/certs/isrgrootx1.pem
Если нужен DER:
openssl x509 -in isrgrootx1.pem -outform der -out isrgrootx1.der
В принтер:
- CA certificate →
isrgrootx1.pemили.der
❌ НЕ нужно:
fullchain.pemprivkey.pem
9. Быстрая проверка сервера
openssl s_client -starttls smtp -connect mail.example.ru:587
openssl s_client -connect mail.example.ru:465
Главное:
Verify return code: 0 (ok)- CN совпадает с именем сервера