Как-то давно устарели и отвалились сертификаты starttls на корпоративном почтовом сервере Postfix. Всё не доходили руки, да и не надо было особо, починить это безобразие… А вот назрело, порылся и нашёл примитивнейшую команду:
openssl req -new -x509 -days 7300 -nodes -out /etc/ssl/certs/ssl-cert-snakeoil.pem -keyout /etc/ssl/private/ssl-cert-snakeoil.key
В моей конфигурации postfix прописаны именно эти пути и файлы, увидеть это можно в /etc/postfix/main.cf:
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
Разумеется, прежде я скопировал старые ключи (наверно, не надо было, они устарели уже несколько лет назад) и после генерации новых ключей поправил права на файлы на 600:
chmod 600 /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/private/ssl-cert-snakeoil.key
и права на директории на 700:
chmod 700 /etc/ssl/certs /etc/ssl/private
а так же владельца:
chown -R root:root /etc/ssl
Проверить настройку можно командой postfix check, применить командой postfix reload