Установка сертификатов в postfix

Установка StartSSL сертификатов — Postfix/Dovecot/Nginx

В предыдущем топике я рассказал о сервисе где можно бесплатно получить ssl-сертификаты. И как бы в продолжение решил описать как установить их на то или иное ПО.
Я рассмотрю следующее ПО:

* Postfix
* Dovecot
* Nginx

Все выше перечисленное установлено на CentOS 5.5.

Postfix
С постфиксом я намучился больше всего. Казалось бы, есть документация, куча примеров и тд, должно быть все просто, но нет, перепробовав кучу вариантов попутно перечитывая документацию я убил не мало времени пока все стало работать.
Подготовка
Подразумевается что у вас уже есть приватный ключ и сертификат для домена.
mail.example.com.key    (есть описание в этой же папке)
mail.example.com.crt
Также вам необходимо скачать файл с сертификатом промежуточного CA необходимого класса.
Их можно найти здесь
Для бесплатных сертификатов это sub.class1.server.ca.pem
В этом примере я использую приватный ключ без пассфразы.
И так у нас есть 3 файла.
mail.example.com.key
mail.example.com.crt
sub.class1.server.ca.pem
Создадим файл который скушает постфикс
cat mail.example.com.key mail.example.com.crt sub.class1.server.ca.pem > mail.example.com.pem
копируем полученный файл куда надо, я свой положил в /etc/pki/postfix/
Конечно же не забиваем выставить владельца и права, так как в файле наш ключ.

в /etc/postfix/main.cf добавляем:
smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtpd_tls_cert_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу
smtpd_tls_key_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes

smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_cert_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу
smtp_tls_key_file = /etc/pki/postfix/mail.example.com.pem # путь к нашему файлу
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_security_level = may

smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
smtpd_tls_auth_only = no
tls_random_source = dev:/dev/urandom

Что значит каждый параметр и за что он отвечает можно узнать в документации для Postifx
для проверки того что все окей можно использовать следующую комманду:
openssl s_client -starttls smtp -showcerts -connect localhost:25
В результате должно вернуться что то вроде:
SSL handshake has read 4760 bytes and written 354 bytes

New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 4096 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 418AA0ED7BA85B2B9301FA127D05DCAFABCEDC192101A6E75DD872FA3E528366
Session-ID-ctx:
Master-Key: 498FB41D5810A9768710936351DC92169B6D7DEFAHTEDBDUO60DE9349

DA7EB5536F975A8BC4AF190466B637CC129A93E
Key-Arg : None
Krb5 Principal: None
Start Time: 1287331961
Timeout : 300 (sec)
Verify return code: 0 (ok)

250 DSN

в /etc/postfix/master.cf раскомментируем следующие строки:
smtps inet n — n — — smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes

На этом с постфиксом все.

Dovecot
С довекотом все оказалось намного проще и у меня все заработало с первого раза
Подготовка
У вас уже есть 3 файла
mail.example.com.key
mail.example.com.crt
sub.class1.server.ca.pem
Копируем ключ, создаем сертификат который скушает dovecot
cp mail.example.com.key /etc/pki/dovecot/private/
cat mail.example.com.crt sub.class1.server.ca.pem > /etc/pki/dovecot/certs/mail.example.com.pem

В dovecot.conf надо прописать:
ssl_cert_file = /etc/pki/dovecot/certs/mail.example.com.pem
ssl_key_file = /etc/pki/dovecot/private/mail.example.com.key
и конечно же включить SSL
ssl_listen = *
ssl = yes
И добавить в список протоколов необходимые лично вам.
protocols = pop3 pop3s imap imaps

Nginx
С ним тоже все очень просто и в целом процедура не отличается от dovecot’овской
Погдотовка
У вас уже есть 3 файла
mail.example.com.key
mail.example.com.crt
sub.class1.server.ca.pem
Копируем ключ, создаем сертификат который скушает nginx
cp mail.example.com.key /etc/pki/nginx/private/
cat mail.example.com.crt sub.class1.server.ca.pem > /etc/pki/nginx/certs/mail.example.com.pem

в конфигурации для хоста nginx должно быть что типа такого:
server {
listen 443;
server_name mail.example.com;
ssl on;
ssl_certificate /etc/pki/nginx/certs/mail.example.com.pem;
ssl_certificate_key /etc/pki/nginx/private/mail.example.com.key;

ssl_session_timeout 5m;

ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;

location / {
root /srv/www/htdocs/;
index index.html index.htm;
}
}

На этом все, надеюсь кому-то этот топик окажется полезным.

1024 и 512

# openssl gendh -out /etc/postfix/dh_1024.pem -2 -rand /var/run/egd-pool 1024
# openssl gendh -out /etc/postfix/dh_512.pem -2 -rand /var/run/egd-pool 512
# chmod 400 /etc/postfix/dh_1024.pem /etc/postfix/dh_512.pem
# chown root:root /etc/postfix/dh_1024.pem /etc/postfix/dh_512.pem
http://www.ossg.ru/wiki/Admin/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B8%20SASL%20%D0%B2%20Postfix

Запись опубликована в рубрике mail, Postfix. Добавьте в закладки постоянную ссылку.

Добавить комментарий