Бесплатный ssl сертификат для postfix
На днях узнал про интересный сервис, который позволяет получить бесплатно ssl сертификат с подтверждением доменного имени. Его можно использовать либо в почтовом сервисе, либо на сайте для подтверждения его подлинности. В этой статье я расскажу об использовании ssl сертификата в почтовом сервере postfix.
Получение бесплатного ssl сертификата
Бесплатно получить сертификат можно на сайте startssl.com. Для этого нужно зарегистрироваться, зайти в панель управления. Последовательность действия такова:
- Сначала подтверждаем право владения доменом
- Потом выпускаем сертификат для домена сроком на год
Для подтверждения владения доменом достаточно получить проверочный код на один из ящиков: postmaster, hostmaster или webmaster. Если у вас есть доступ к одному из этих ящиков, вы сможете выпустить сертификат для своего сайта.
Итак, подтверждаем право владения в пункте меню Validations Wizard.Там достаточно просто пройти по шагам, не буду на этом останавливаться подробно. Важнее правильно выпустить ssl сертификат, чтобы потом не было проблем. После того, как подтвердили, что домен ваш, приступайте к генерации сертификата. Для этого выбираем пункт Certificates Wizard.
В выпадающем списке указываем тип сертификата — web server SSL/TLS Сertificate. Дальше нужно сформировать Private Key. Сделать это можно как тут же, на сайте, либо загрузить свой. Визард на сайте не позволяет создать приватный ключ без пароля, но если его создать с паролем, то postfix не будет с ним работать. Так что будем генерировать приватный ключ сами.
Для этого идем на сервер, на котором должен быть установлен OpenSSL, и выполняем там команды:
# mkdir /root/ssl # cd /root/ssl # openssl genrsa -out private.key 2048
Приватный ключ выглядит примерно так:
# cat private.key —–BEGIN RSA PRIVATE KEY—– MIIEowIBAAKCAQEAxn5az13u/oZa3CXgkQiGNGuEvY5GFjXXXuIoWC+VaE99uWjI NMKvyzKctLpCIz6066WNzb/NaBR2RVhQn/TrWMyapY1WGVrq4XEQ6veRzAAus6Is iea31nn+n46Z9aN2iAZjpkIuhsQHRwzjgCkoAIPMDhMtMmcoa2DH5GV1Aq8yHrjf WNCY53+7/uq60kg+MpNxePDdhe2c8Qs9qEcnMG8Ew3DzjPPZfUa2zsq5g1eCoP5O aDNtD9lWeCZBWgG1fVj0C7ydHV9H5HU9tMdHXZH8PcLZ4sf4a3Dub1t9klYNIcxG HlaOKaPzouM78UHSOPdnrg1I8+nvREDKJ27IPQIDAQABAoIBAFGK2O11blgbg7oK yW1rbg6c2OQyTXKUXcy55c8MhTlb5o9Dj3O1QxibyyqnlcH64cIouc97avvF5Cxq snxz1jcdnq5CVMvDwNgqZcPRPpDqxkS/a8KfCIjQhxyvLWpu46PP1CIZ8Bkm8MJs dg1RWwCTJEHn+NpK7JzoHlYio+Ycrv92NcZ8PMrobkwwrBmJx2WvryRe1YgXL58z TvNxXnfiITAwCLMu7fBZvFWs7hY4XLZP7YjSxhIsoZeTRpt4RZ1gniSAfYZOffq1 HFAokdn2f00nVHjRvFcwQeP0+QBGZvGL2IgllO4IFBsBSDp4IwawT9fFi71BVLcy 1nmHYbUCgYEA9VOFHjgx4NbWXKs+jeiFIIY8Hmsmu+v2j+eWBMiamgxkHnJQKqD0 lGagww6uIMqxH3r6XJ8ZJlygCH7fZRpSA2rPIReJwWUHU9R4pZOVUyp8t3iHFV78 SAcgrl2NzROiq5OgGYmh1VmoHIgJZ1VCNO5AMTsyNhs5Rnm89XrJ4XsCgYEAzyE0 mTG3YbTkWi1CE2PajiLw6x/WTZ4Q4QcIq6n0+DvWP/hwcu78gt9oCP+M8WM1/w34 uc0hoJhJ7/XTkR0/UArG8yr7L2g+MMypnz1Smzj3ML+nyfPLo9TrCj1EwapD6OHZ qGR1TvAYHhX1tR6HcKaQxhz/uXLQdNVwHk40w6cCgYAdhv/uszTNqw4B+Vp+Gg5r 67wwrRTsaWozx9v2l26EPBmQ0JF1kAngEromwA2VRNAsydB4dW3BgESCwUKCGLjm UGS9xud9r3tCS8B5rVm7uNFqA8e+esBCqxjz4669kC90F0Cd0kL4OuJRDM6U8V4W oNZ5FnbkrEIoiV6E7VJ/IQKBgHSoQAaUELOP/Rio6tEe6SYqmcPjT4CxqNIEcyaz 90uj79xhoXuqDD/tcZu3ynrdpLi89rw2w1y+yM3Eh17wuQrstvaX25bswDOqYpJU KGVSJS6okujUTXo9Xg+LSGFG8y6DnWIRClzmLr8rIRLcWe3hciKSjJi3CJ7040u+ Qkt7AoGBAMbmmth493sx6K0lT1VGkqg50v5auku17MobvXE4VDZFk/fHoad+ql1D 4C0V55eBOxCYFa2yG+Aba6WynYUJ6oD1M6oK29xRVGzjj8ptbRh1XbdxKXuILWVd /bVZnDthvZ2S/l494upw9oC65wp96041F0MHSKOt8EwiKZ96MIma —–END RSA PRIVATE KEY—–
Затем создаем CSR ключ. Аккуратно отвечаем на все вопросы. Изменить введенную информацию будет нельзя, придется перевыпускать сертификат. Этот сервис перевыпустить сертификат бесплатно не позволит. Так что делаем все аккуратно:
# openssl req -new -key private.key -out zeroxzed.ru.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. —– Country Name (2 letter code) [XX]:RU State or Province Name (full name) []:Moscow state Locality Name (eg, city) [Default City]:Moscow Organization Name (eg, company) [Default Company Ltd]:zeroxzed Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:mail.zeroxzed.ru Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Жирным я отметил те пункты, что вводил сам, остальное оставил как было. На выходе имеем файл запроса на сертификат:
# cat zeroxzed.ru.csr —–BEGIN CERTIFICATE REQUEST—– MIICyjCCAbICAQAwgYQxCzAJBgNVBAYTAlJVMRUwEwYDVQQIDAxNb3Njb3cgc3Rh dGUxDzANBgNVEAcMBk1vc2NvdzERMA8GA1UECgwIemVyb3h6ZWQxGTAXBgNVBAMM EG1haWwuemVyb3h6ZWQucnUxHzAdBgkqhkiG9w0BCQEWEHJvb3RAemVyb3h6ZWQu cnUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGflrPXe7+hlrcJeCR CIY0a4S9jkYWNdde4ihYL5VoT325aMT0wq/LMpy0ukIjPrTrpY3Nv81oFHZFWFCf 9OtYzJqljVYZWurhcRDq95HMAC6zoiyJ5rfWef6fjpn1o3aIBmOmQi6GxAdHDOOA KSgAg8wOEy0yZyhrYMfkZXUCrzIeuN9Y0Jjnf7v+6rrSSD4yk3F48N2F7ZzxCz2o RycwbwTDcPOM89l9RrbOyrmDV4Kg/k5oM20P2VZ4JkFaAbV9WPQLvJ0dX0fkdT20 x0ddkfw9wtnix/hrcO5vW32SVg0hzEYeVo4po/Oi4zvxQdI492euDUjz6e9E8Mon bsg9AgMBAAGgADANBgkqhkiG9w0BAQDFAAOCAQEAsUnBtUV7WMtIdbCoMv75U1X2 EOhaO8hm8NwJM7mNsCBhI4p/XsOwc0712TbJS0exoWLD86/2NIkSiWBAf14UaXOE TcrNxcvVTCnrrJmO0mxlCiLWpFJPe+v6pTnMhJXSPdxEdnqVlRGEUYw1FlsKHgd0 eSzlQXyHZq4o/KRvZpJeSqj+xZKn3P9XuNVYWqa9EPDtNx+QoGYT/2JzvWKtGBBV fx8wLSLTIHRHUUu7ildClAmkKcR/lnFuW5ZePC8pg5N2wO7SdVVYhuCskWWPlh75 sFrWrBjYLynTDcwpXeEOOCRE6FXOoLrjV9I1wEpkrnopQpt4Dn9Q4PGnV7r70A== —–END CERTIFICATE REQUEST—–
Запрос на сертификат сформировали, теперь идем снова на сайт. Мы находились на первом этапе запроса сертификата, когда нужно было сформировать pravate key. Так как мы его создали сами, нажимаем на Skip.
В открывшейся форме вводим наш Certificate Request. На следующем шаге выбираем подтвержденный домен и вводим один поддомен, который хотим добавить в сертификат.
В бесплатной версии можно выпустить сертификат на домен и один поддомен.
На завершающем этапе получаем сформированный сертификат. Копируем его к себе и сохраняем, попутно скачиваем корневой сертификат, он нам позже пригодится.
На этом получение бесплатного сертификата окончено. Нам понадобятся в будущем 3 файла: zeroxzed.key, zeroxzed.crt, sub.class1.server.ca.pem.
Настраиваем postfix на использование ssl сертификата
Теперь настроим postfix для поддержки им SSL/TLS соединений. Для этого нужно сначала подготовить файл, включающий в себя 2 сертификата: наш для домена и корневой.
# cat zeroxzed.ru.crt sub.class1.server.ca.pem >> zeroxzed.ru.crt+ca
Изменяем конфиг postfix main.cf. Добавляем туда следующие строки:
smtpd_tls_cert_file = /root/ssl/zeroxzed.ru.crt smtpd_tls_key_file = /root/ssl/zeroxzed.ru.crt.key smtpd_tls_CAfile = /root/ssl/zeroxzed.ru.crt+ca smtpd_use_tls = yes smtpd_tls_note_starttls_offer = yes smtpd_tls_loglevel = 1 smtp_tls_security_level = may
Для применения изменений перезапускаем postfix и проверяем. Не забудьте открыть необходимые порты на фаерволе для работы защищенных соединений. Проверить работу ssl соединения постфикс можно следующим образом:
# openssl s_client -starttls smtp -showcerts -connect localhost:25Server certificate subject=/C=RU/CN=mail.zeroxzed.ru/[email protected] issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA — No client certificate CA names sent — SSL handshake has read 4048 bytes and written 354 bytes — New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: 9A832A0BF1DE2907D8D24797D8178B4C90D7D5ADDCFD6CF39A95FB234CD7B3A9 Session-ID-ctx: Master-Key: B0AFCAD300C0EBBE8C20320D215D70CEED5B3BFAF2B7C552F7BBF8C5B0358F6B6B85E1DBACEE6878AE3E65B5783DC1EF Key-Arg : None Krb5 Principal: None Start Time: 1433174737 Timeout : 300 (sec) Verify return code: 0 (ok)
Если у вас подобный вывод, все в порядке. Если же у вас нечто подобное:
43134:error:1455430FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:601
То нужно идти в почтовые логи и смотреть, в чем проблема.
Если в логах нечто подобное:
postfix/smtpd[12882]: warning: cannot get RSA private key from file /root/ssl/zeroxzed.key: disabling TLS support postfix/smtpd[12882]: warning: TLS library problem: 12882:error:0911407E:PEM routines:PEM_def_callback:problems getting password:pem_lib.c:111: postfix/smtpd[12882]: warning: TLS library problem: 12882:error:0911407E:PEM routines:PEM_do_header:bad password read:pem_lib.c:454: postfix/smtpd[12882]: warning: TLS library problem: 12882:error:150D1007:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib:ssl_rsa.c:669:
Это значит, что ваш приватный ключ зашифрован. postfix не умеет работать с зашифрованными ключами. Private key можно расшифровать следующей командой:
# openssl rsa -in private.key -out newprivate.key
Я сначала не знал об этом и сгенерировал private key с паролем с помощью сайта startssl.com, выпустил сертификат на его основе. А потом столкнулся с ошибкой postfix.
Попытался создать сертификат заново, но это уже невозможно, на домен можно выпустить только один бесплатный сертификат. Чтобы создать новый, нужно отозвать существующий, а отзыв сертификата — платная услуга.
Но оказалось, что перевыпускать сертификат не обязательно, достаточно было снять пароль с приватного ключа, что я и сделал.
Настраиваем dovecot на использование ssl сертификата
Если вы используете на почтовом сервере dovecot, то можно добавить защищенные соединения на основе нашего бесплатного сертификата и в нем. Сделать это очень просто. Открываем конфиг dovecot и добавляем туда следующие строки:
ssl_cert_file = /root/ssl/zeroxzed.ru.crt ssl_key_file = /root/ssl/zeroxzed.ru.crt.key ssl_ca_file = /root/ssl/zeroxzed.ru.crt+ca
Изменения вступят в силу после перезапуска сервера. Опять же, не забываем про фаервол. SSL/TLS соединения работают по другим портам, нежели открытые подключения.
По идее, теперь у вас все должно работать. Мои примеры с работающих серверов.
Помогла статья? Есть возможность отблагодарить автора
Источник: https://serveradmin.ru/besplatnyiy-ssl-sertifikat-dlya-postfix/
Установка StartSSL сертификатов — Postfix/Dovecot/Nginx
В предыдущем топике я рассказал о сервисе где можно бесплатно получить ssl-сертификаты. И как бы в продолжение решил описать как установить их на то или иное ПО.
Я рассмотрю следующее ПО:
Все выше перечисленное установлено на 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_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache 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: 498FB41D5810A9768710936351DC92169B6D7DEFAHTEDBDUO60DE9349DA7EB5536F975A8BC4AF190466B637CC129A93E 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
UPD: если надо обеспечить IMAP и POP на разных субдоменах например imap.example.com и pop.example.com, то нужно для каждого субдомена подготовить сертификаты как указано выше и внести следующие изменения в dovecot.conf
protocol imap { listen = 192.0.2.1:143 ssl_listen = 192.0.2.1:993 ssl_cert_file = /etc/pki/dovecot/certs/imap.example.com.pem ssl_key_file = /etc/pki/dovecot/private/imap.example.com.key } protocol pop3 { listen = 192.0.2.1:110 ssl_listen = 192.0.2.1:995 ssl_cert_file = /etc/pki/dovecot/certs/pop.example.com.pem ssl_key_file = /etc/pki/dovecot/private/pop.example.com.key
}
Спасибо Andrey_Zentavr за данное дополнение к статье.
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; }
}
На этом все, надеюсь кому-то этот топик окажется полезным.
UPD2: Спасибо rojer за ценное исправление.
Источник: https://habr.com/post/106314/
Бесплатные SSL сертификаты и их установка в nginx postfix dovecot и ejabberd
Сейчас SSL сертификаты можно получить бесплатно и те кому интересна данная тема без труда найдут информацию о получении бесплатных сертификатов StartSSL. Есть хорошая статья по этому поводу на Хабре, поэтому я не буду останавливаться подробно на процессе получения самих ключей и сертификатов, а перейду сразу к процессингу настройки почтового сервера,веб сервера… для работы с SSL.
Итак. Подразумевается, что уже имеете секретный ключ и сертификат подписанный StartSSL. Сразу хочу сказать, что все ключи и сертификат нужно надежно сохранить как минимум до момента, когда вы убедились, что все сертификаты корректно работают на сервере, а лучше всего до окончания срока их действия (1 год).
Введу некоторые обозначения:
- ssl.key – Приватный ключ
- ssl.crt – Сертификат подписанный StartSSL
- ssl_enc.key – Публичный ключ
- sub.class1.server.ca.pem – Сертификат промежуточного CA
- ca-bundle.pem – Цепочка сертификатов
- ca.pem – Сертификат корневого CA
Скачать недостающие сертификаты можно здесь
Начнем с самого простого
Nginx
Сначала создадим файл сертификата который будет понимать nginx:
cat ssl.crt sub.class1.server.ca.pem ca.pem > /etc/ssl/nginx/nginx.crtcp ssl_enc.key /etc/ssl/nginx/nginx.key
Далее очень рекомендую изучить мою небольшую заметку по сертификатам, потому как если не следовать инструкции описаной в ней – работать ничего не будет. Данное правило справедливо для всех сертификатов (dovecot,postfix,nginx,ejabberd)
Установим нужного владельца и права на ключи и сертификаты
chown -R root:root && chmod -R 400 /etc/ssl/nginx/nginx.*
Теперь настроим сам nginx путем добавления некоторых строк в конфиг. Добавлять нужно в директиву server
server { ssl on; ssl_certificate /etc/ssl/nginx/nginx.crt; ssl_certificate_key /etc/ssl/nginx/nginx.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; listen 443 ssl;
Показал только строки которые нужно добавить.
Проверяем валидность конфига:
nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
И стартуем сервер.
Теперь проверим работу всего этого:
openssl s_client -connect -CApath /etc/ssl/certs/ yourdomain.ru:443
Видим примерно такой листинг:
CONNECTED(00000003)
depth=2 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Certification Authority
verify return:1
depth=1 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Class 1 Primary Intermediate Server CA
verify return:1
depth=0 C = RU, CN = host.yourdomain.ru,
emailAddress = [email protected]
verify return:1
Если ошибок нет, то значит все работает как надо
Postfix
Создадим нужные файлы и для постфикса.
cp ssl.crt /etc/ssl/postfix/postfix.crt
cp ssl_enc.key /etc/ssl/postfix/postfix.key
cp ca.pem /etc/ssl/postfix
Сменим права и владельца файлов:
chown -R root:postfix /etc/ssl/postfix/*
chmod -R 400 /etc/ssl/postfix/*
Открываем конфиг постфикса
nano -w /etc/postfix/main.cf
И добавляем в него следующее если еще не включено:
smtpd_tls_CAfile = /etc/ssl/postfix/ca.pem
smtpd_tls_cert_file = /etc/ssl/postfix/postfix.crt
smtpd_tls_key_file = /etc/ssl/postfix/postfix.key
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_tls_session_cache
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 0
smtpd_tls_auth_only = yessmtp_tls_CAfile = /etc/ssl/postfix/ca.pem
smtp_tls_cert_file = /etc/ssl/postfix/postfix.crt
smtp_tls_key_file = /etc/ssl/postfix/postfix.key
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls = yes
Закрываем конфиг и переходим к Dovecot
Dovecot
Все делаем по аналогии:
cat ssl.crt sub.class1.server.ca.pem > /etc/ssl/dovecot/dovecot.crt
cp ssl_enc.key /etc/ssl/dovecot/dovecot.key
Установим права:
chown -R root:root /etc/ssl/dovecot/dovecot.*
chmod -R 400 /etc/ssl/dovecot/dovecot.*
Теперь откроем конфиг ssl dovecot
nano -w /etc/dovecot/conf.d/10-ssl.confssl = yes
ssl_cert = /etc/ssl/dovecot/dovecot.crt
ssl_key = /etc/ssl/dovecot/dovecot.key
ssl_ca = /etc/ssl/dovecot/ca-bundle.pem
Рестартим постфикс и довкот, а потом проверяем работу сертификатов:
openssl s_client -CApath /etc/ssl/certs/ -connect hostname.domain.ru:25 -starttls smtpopenssl s_client -CApath /etc/ssl/certs/ -connect hostname.domain.ru:993
Опять же если ошибок нет – то все работает как надо.
Ejabberd
cat ssl.crt sub.class1.server.ca.pem ca.pem ssl_enc.key > /etc/ssl/ejabberd/jabber.crt
Сменим права и пользователя:
chown -R ejabberd:ejabberd /etc/ssl/ejabberd/jabber.crt
chmod 400 /etc/ssl/ejabberd/jabber.crt
Само собой chown делаем на того пользователя и группу от которого запускается Ejabberd. В моем случае (Debian 7) это ejabberd.
Теперь открываем конфиг и включаем tls на сервере ejabberd:
{certfile, “/etc/ssl/ejabberd/jabber.crt”}, starttls,
{s2s_use_starttls, optional}.
{s2s_certfile, “/etc/ssl/ejabberd/jabber.crt”}.
Не советую копировать отсюда куски конфига ejabberd – могут быть тяжелые последствия. Ищем соответствующие переменные в существующем конфиге.
На этом все, предложения и замечания в коментариях.
Источник: https://syslinux.ru/node/1451
Создание tls сертификата для postfix и courier-imap
Понадобилось по некоторым причинам сделать новые сертификаты для почтового сервера, для postfix и courier-imap. В повседневной практике это довольно редкий случай, поэтому в голове не откладывается. Для этого и пишу заметку для себя, чтобы больше “не забывать”.
Создание сертификата для postfix'а.
Создать файл openssl.cnf, в котором будут лежать настройки, чтобы не вводить их ручками:cd /etc/postfix
touch openssl.cnfСодержимое файла openssl.cnf:
[req]
default_bits = 4096 # Длинна ключа в битах.
default_keyfile = key.pem # Имя файла, в который будет записан закрытый ключ.
encrypt_key = no # Нам не нужно шифровать закрытый ключ паролем.
default_md = sha512 # Алгоритм хеша.
x509_extensions = v3_req # Включаем расширение V3.
prompt = no # Не нужно запрашивать данные у пользователя, мы всё пропишем здесь.
distinguished_name = req_distinguished_name # Имя секции с данными (может быть любым).
[req_distinguished_name]
C = Country # Двухбуквенный код страны
L = Locality # Город
O = Organization # Название организации
CN = mail.example.com # Имя домена
emailAddress = [email protected] # Адрес электронной почты
# Можно ещё указать следующие поля:
# ST (State – штат, название провинции и т.п.
)
# OU (Organizational Unit – название подразделения) [v3_req]
# Список альтернативных имён. Можно указать прямо здесь, но это не
# удобно, особенно если их много, так что мы указываем название секции
# с именами.
subjectAltName = @alt_names [alt_names]
# Имена. Можно указать хоть сколько, главное чтобы цифры после точки были разными.
DNS.
0 = example.com
DNS.1 = www.example.com
Создание сертификата и закрытого ключа:
openssl req -new -x509 -days 36500 -config openssl.cnf -out cert.pem -outform PEM -keyout key.
pem -keyform PEMЗначение опций: req — команда создание запроса на сертификат -new — создать новый запрос -x509 — создать готовый самоподписанный сертификат, а не только запрос -days 36500 — срок действия сертификата, в данном случае 100 лет -config openssl.cnf — наш файл с настройками -out cert.
pem — в этот файл будет записан созданный сертификат, без этой опции сертификат будет выведен на стандартный вывод -outform PEM — формат, в котором будет записан сертификат -keyout key.pem — аналогично -out, но для файла закрытого ключа -keyform PEM — аналогично -outform, но для файла закрытого ключа
Создание сертификата для courier-imap / imapd.
Создать файл imapd.cnf, в котором будут лежать настройки, чтобы не вводить их ручками:cd /etc/courier-imap
touch imapd.cnfСодержимое файла imapd.cnf (значения аналогичны openssl.
cnf):
[ req ]
default_bits = 1024
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
default_md = sha1 [ req_dn ]
C=Country
L=Locality
O=Organization
CN=mail.example.com
emailAddress=postmaster@example.
com [ cert_type ]
nsCertType = server
Создание сертификата:
dd if=/dev/urandom of=/tmp/imapd.rand count=1 2>/dev/null
openssl req -new -x509 -days 36500 -nodes -config /etc/courier-imap/imapd.cnf -out /etc/courier-imap/imapd.pem -keyout /etc/courier-imap/imapd.pem
openssl gendh -rand /tmp/imapd.
rand 512 >> /etc/courier-imap/imapd.pem
openssl x509 -subject -dates -fingerprint -noout -in /etc/courier-imap/imapd.pem
rm -f /tmp/imapd.rand
Создание сертификата для courier-imap / pop3d.
Создать файл pop3d.cnf, в котором будут лежать настройки, чтобы не вводить их ручками:cd /etc/courier-imap
touch pop3d.cnfСодержимое файла pop3d.cnf, в моем случае, полностью повторяет imapd.cnf. Создание сертификата:dd if=/dev/urandom of=/tmp/pop3d.rand count=1 2>/dev/null
openssl req -new -x509 -days 36500 -nodes -config /etc/courier-imap/pop3d.cnf -out /etc/courier-imap/pop3d.
pem -keyout /etc/courier-imap/pop3d.pem
openssl gendh -rand /tmp/pop3d.rand 512 >> /etc/courier-imap/pop3d.pem
openssl x509 -subject -dates -fingerprint -noout -in /etc/courier-imap/pop3d.pem
rm -f /tmp/pop3d.randPS: Иногда бывает нужно посмотреть сертификат, “что там у него внутри”… Тут хорошо помогает команда:openssl x509 -in cert.pem -noout -text | less
Информация с сайта https://blog.
angel2s2.ru/.
Источник: https://blog.angel2s2.ru/2013/06/createtlscertforpostfixandcourier-imap.html
Linux/BSD Проще не бывает!
Както давненько был куплен сертификат для mail сервера, я его закинул на сервак, прописал путь к нему и к CA что предоставил центр сертификации где покупали, и усе.
При этом outlook при первом обращении на него всетаки ругнулся, но достаточно было один раз ткнуть чтото типа «Доверяю и не спрашивать больше» и все прекрасно заработало. Времени копать дальше не было, как обычно, проехали-забыли.
Но осадок остался … вот выдалось время разобраться в этом деле поглубже, для начала пара полезных команд:
openssl s_client -CApath /etc/ssl/certs/ -connect mail.nixcraft.net:443
openssl s_client -CApath /etc/ssl/certs/ -connect mail.somadomain.com.ua:995
openssl s_client -CApath /etc/ssl/certs/ -connect mail.somedomain.com.ua:587 -starttls smtp
А теперь по существу «моей проблемы». Чтобы все работало верно сертификат со стороны сервера должен состоять из сертификатов CA (очень желательно всех до корня) и сертификата выданого на данный сервер. Как проверить что у нас есть в данный момент? Просто! Например:
Запускаем тест соединения с SMTP сервером с поддержкой TLS
openssl s_client -CApath /etc/ssl/certs/ -connect mail.somedomain.com.ua:995
Видим довольно длинный выхлоп, но нас интересуют строчки в начале:
depth=2 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = PositiveSSL CA 2 verify return:1
depth=0 OU = Domain Control Validated, OU = PositiveSSL, CN = mail.somedomain.com.ua verify return:1
— Certificate chain
0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=mail.somedomain.com.ua
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
—
Несмотря на то что проверка пройдена успешно, более правильно всетаки вставить и CA сертификат AddTrust-а в сертификат на сервере. Как я увидел что его там нет? Очень просто, цепочка сертификатов не соответствует глубине проверки, смотим опять в выхлом приведенный выше:
depth=2 Говорит о том что глубина проверки до корневого сертификата равна 3-м (счет идет с нуля), а
Certificate chain
состоит всего из двух записей, а это какраз то что выдает нам сам сервер
Источник: https://diff.org.ua/archives/1491
SSL, TLS в Postfix, Dovecot и Apache шифруем любое соединени – Блог системного администратора, для IT Специалистов
Имеем почтовый сервер Postfix+Dovecot(IMAP)+RoundCube(на Apache) выведенный соответственно IMAP, SMTP и HTTP портами в интернет. Пользователи могут удобно работать в офисе и дома, используя одну и ту же почту с настроенными на сервере правилами сортировки писем и т.п.
Все радуются, прыгают, веселятся, и тут НЕОЖИДАННО нападет паранойя. Оказывается TCP пакеты очень легко перехватываются и расшифровываются, а пароли, письма и проч.
летают туда-сюда в открытом виде! Паника! Большой брат слушает! Срочно надо что-то делать! И тут, весь в белом, на помощь к нам приходит SSL.
Для начала нам потребуется SSL сертификат. Для этого воспользуемся сайтом организации StartSSL. Подробная инструкция по получению сертификата лежит здесь: https://mrcat.ru/free-valid-ssl. В итоге, после получения сертификатов, у вас должна быть такая картина:
#ls /etc/postfix/sub.class1.server.ca.pemsysadmin-komi.ru.crt+ca
sysadmin-komi.ru.csr
sysadmin-komi.ru.crt
sysadmin-komi.ru.crt+ca+key
sysadmin-komi.ru.key
Едем далее:Настройка Apache2 SSL для Roundcube.
Редактирум /etc/apache2/apache2.conf:
Listen 443SSLEngine on
SSLCertificateFile /etc/postfix/sysadmin-komi.ru.crt
SSLCertificateKeyFile /etc/postfix/sysadmin-komi.ru.key
SSLCertificateChainFile /etc/postfix/sysadmin-komi.ru.crt+ca DocumentRoot /var/www/soft-komi.ru/mail CacheNegotiatedDocs On Options FollowSymLinks -Indexes AllowOverride AuthConfig Limit Options FileInfo
Хочу отметить, что в такой конфигурации, по порту 443 (который в последствии и нужно выводить в интернет), будет доступна только каталог /var/www/sysadmin-komi.ru/mail с RoundCube
Настройка Postfix SMTP SSL
Редактируем etc/portfix/main.cf:
smtpd_tls_cert_file = /etc/postfix/sysadmin-komi.ru.crt
smtpd_tls_key_file = /etc/postfix/sysadmin-komi.ru.key
smtpd_tls_CAfile = /etc/postfix/sysadmin-komi.ru.crt+casmtpd_use_tls = yessmtpd_tls_note_starttls_offer = yessmtpd_tls_loglevel = 1#Если нужно делать отбой всем неавторизированным по SSL пользователям#smtpd_tls_auth_only = yes#Если хотим, чтобы postfix при отправке письма на внешние почтовые сервера пытался соединяться по SSL
smtp_tls_security_level = may
Настройка Dovecot IMAP,POP3 SSL
Редактируем /etc/dovecot.conf:
protocols = imap imaps pop3 pop3sssl = yes
ssl_cert_file = /etc/postfix/sysadmin-komi.ru.crt
ssl_key_file = /etc/postfix/sysadmin-komi.ru.key
ssl_ca_file = /etc/postfix/sysadmin-komi.ru.crt+caprotocol imap { listen=*:143 ssl_listen=*:993
ssl_cert_file = /etc/postfix/sysadmin-komi.ru.crt
ssl_key_file = /etc/postfix/sysadmin-komi.ru.key}protocol pop3 { listen=*:110 ssl_listen=*:995
ssl_cert_file = /etc/postfix/sysadmin-komi.ru.crt
ssl_key_file = /etc/postfix/sysadmin-komi.ru.key
}
После перезагружаем всех демонов, выводим новые порты наружу, перенастраиваем почтовых клиентов и все. Никаких сообщений о ненадежных сертификатах и проч. появляться более не должно
Если что то не понятно пишите, буду рад подсказать!
Источник: https://sysadmin-komi.ru/linux/pochtovye-servera-linux/postfix/ssl-tls-v-postfix-dovecot-i-apache-shifruem-lyuboe-soedineni.html
Настройка SSL для SMTP-сервера postfix (FreeBSD)
Изначально, Postfix создавался как альтернатива для Sendmail. Postfix быстрее работает, легче в администрировании, более защищен и, что важно, совместим с Sendmail.
Postfix отличается продуманой модульной архитектурой, которая позволяет создать очень надежную и быструю почтовую систему.
Так, например, root-привилегии требуются только для открытия порта, а демоны, которые выполняют основную работу могут работать под непривелегированным пользователем в изолированном окружении, что очень положительно сказывается на безопасности.
При простое почтовой системы ненужные демоны могут прекращать свою работу, высвобождая тем самым память, а при необходимости снова запускаются master-демоном.
Для реализации работы TSL/SSL в Postfix можно использовать технологию SASL (Simple Authentication and Security Layer). Далее описан процесс настройки сервера Postfix.
Установка и настройка postfix
- Если это не было сделано ранее, установите openssl:cd /usr/src/ports/security/openssl/ make && make install
- Установите пакеты SASL (cyrus-sasl2 и cyrus-sasl-saslauthd):cd /usr/src/ports/security/cyrus-sasl2 make all install cd /usr/src/ports/security/cyrus-sasl2-saslauthd make all install
- При необходимости, перекомпилируйте Postfix с поддержкой TLS:cd /usr/ports/mail/postfix make installВ появившемся меню выберите пункты SASL2 и TLS.
- Создайте файл конфигурации SASL:echo “pwcheck_method: saslauthd” > /usr/local/lib/sasl2/smtpd.conf
- Отредактируйте файл /etc/rc.conf и добавьте следующие строки для запускаcyrus-sasl при запуске системы:saslauthd_enable=”YES”
- Запустите cyrus-sasl:/usr/local/etc/rc.d/saslauthd.sh start
- Скопируйте полученные файлы сертификата и приватного ключа в каталог для хранения сертификатов и ключей:mkdir /usr/local/etc/postfix/certs cp certificate.crt /usr/local/etc/postfix/certs cp privatekey.key /usr/local/etc/postfix/certs
- Отредактируйте файл конфигурации Postfix /usr/local/etc/postfix/main.cf и впишите туда следующие строки:# Использовать TLS для отправки почты smtp_use_tls = yes smtp_tls_note_starttls_offer = yes# Путь к сертификату сервера smtp_tls_cert_file = /usr/local/etc/postfix/certs/certificate.crt # Путь к закрытому ключу smtp_tls_key_file = /usr/local/etc/postfix/certs/privatekey.crt
- Перезапустите Postfix, предварительно проверив конфигурацию:postfix check postfix reload
- Проверьте работу SSL:telnet localhost 25 EHLO localhostЕсли в результате вы увидите строчку250-STARTTLSто postfix сконфигурирован и работает с поддержкой SSL/TLS
Постовой
Великолепное решение для автоматизированного управления складом “ФОЛИО WMS Комплект”. Решение подходит для складов любых размеров. Позволяет эффективно управлять приёмом товаров, хранением, отгрузкой. Цены для продукта с такими характеристиками очень умеренная. Советую всем, кто нуждается в решения подобного рода, присмотреться к продукту.
Самые оригинальные и красивые новогодние подарки на сайте VamSkidka.Ru. Спешить не нужно, хватит всем!
Источник: https://system-administrators.info/?p=2554
Пошаговая инструкция по получению бесплатного SSL сертификата для сайта и сервера электронной почты
Все интересные записи перенесены по адресу: https://th22.ru/blog/Ждем вас по новому адресу!
99% статей о настройке web-сервера apache содержат фразу “Для создания ключа и сертификата вводим команду: openssl req -new -x509 -days 30 -keyout server.key -out server.
pem”, это конечно правильно и такой вариант поведения создаст ssl сертификат для вашего сайта, но в любом случае, как-бы вы не старались ваш корневой сертификат не попадет в список доверительных сертификатов браузера и ваши клиенты будут получать предупреждение о не доверительном соединении.
Рассмотрим поведение среднего клиента. Можно нажать игнорировать и даже добавить сертификат в список доверительных для браузера, но среднестатистический пользователь публичного ресурса, просто ничего не знает, ни о доверии, ни о центрах сертификации и просто закроет страницу.
Так почему-же администраторы интернет ресурсов пользуются способом с самоподписанным сертификатом? Да все по тому, что сертификат заказанный в центре сертификации стоит от 4 000 рублей в год и это минимальная цена за один домен и подтверждение названия компании.
Так, что небольшие компании предпочитают или не использовать защищенное соединение или использовать самоподписанные сертификаты. Вот поэтому мы так, часто видим эту замечательную страницу.
Вот пример с довольно популярного ресурса по заказу электронных билетов, видя такую чудную картинку, как-то пугаешься вводить туда платежные данные пластиковой карты.
Хотя, если разбирать конкретно сайт этих продавцов билетов, то похоже они знатно прокололись, хотя для оплаты и предложено переходить на сайт платежной системы, но ввод и передачу персональных данных вроде бы еще не отменили.
В данной заметке рассмотрим получение бесплатного сертификата на сайте StartSSL, механизм получения сертификата довольно простой хотя и не лишен некоторых подводных камней, поэтому рассмотрим все этапы получения сертификата, так-сказать по шагам.
1. Во первых на вашем сайте должен быть настроен почтовый сервер, он понадобится для подтверждения права владения доменом, так-же StartSSL для регистрации не принимает публичные почтовые сервера, что выглядит довольно логичным. Как настроить простой почтовый сервер мы писали в прошлых заметках.
2. Приступим к регистрации на сайте, для чего переходим по адресу https://startssl.com и в меню навигации выбираем раздел “Control Panel”
Далее выбираем раздел “Sign-up”
Заполняем данные регистрационной анкеты. Как я уже говорил выше потребуется электронная почта привязанная к вашему домену. Анкетные данные заполняются по английски. Выполнение этих двух пунктов значительно ускорит регистрацию на сайте и получение сертификата.На указанный электронный адрес выслан код подтверждения который необходимо указать в соответствующем поле.Авторизация на сайте несколько отличается от привычной связки логин/пароль, в чем мы сейчас и убедимся. Следующим этапом является создание приватного ключа для авторизации.
После нажатия кнопки “Continue” появляется этап установки сертификата, где необходимо нажать кнопку “install”.
После получения сообщения о успешной установке сертификата необходимо создать его резервную копию. В случае использования браузера Firefox откройте меню “Настройки”. перейдите на вкладку “Дополнительные”, подпункт “Шифрование” и нажмите кнопку “Просмотр сертификатов”. В просмотре сертификатов в свою очередь перейдите в раздел “Ваши сертификаты”, где необходимо выбрать сертификат выданный StartCom Ltd, и нажать кнопку “Сохранить копию…”На этом регистрация завершена и можно приступать к получению сертификата для нашего web и почтового серверов.
3. Вновь переходим в раздел “Control Panel” где после авторизации по ключу мы видим несколько вкладок из которых нас интересует “Validations Wizard”. Устанавливаем тип подтверждения “Domain Name Validation”.
Указываем имя домена владение которым необходимо подтвердить.
Подтверждение владения доменом осуществляется следующим образом, почтовый робот сайта StartSSL пишет на один из трех системных почтовых адресов, следовательно у вас должен быть заведен один из пользователей postmaster, hostmaster, webmaster или же настроено перенаправление почты от системного пользователя на ваш адрес. Обязательно проверьте, что почта приходит на выбранный адрес. Обязательно проверьте, у например меня, почта для postmaster согласно штатного конфига в dbmail маршрутизировалась на пользователя root.
Механизм подтверждения прав на домен аналогичен регистрации, получаем письмо вводим код подтверждения. После нажатия кнопки “Finish”, ваш домен подтвержден и можно переходить к получению сертификатов.
4. Переходим в раздел “Certificates Wizard” и выбираем какой тип сертификата мы хотели бы получить. Нас интересует Web Server SSL/TLS Certificate.
Создаем наш приватный ключ, на этом шаге необходимо только указать пароль. Размер ключа и механизм шифрования можно оставить по умолчанию (хотя если вы параноик, то можно и выставить максимальные значания, но учтите, что SHA2 не поддерживается Windows XP, Windows Server 2003 и т.п.).После нажатия кнопки продолжить и подтверждения создания ключа, не нажимайте обновить и вообще расслабьтесь и получайте удовольствия до появления окна с сертификатом.Все содержимое сохраняем в обычный текстовый файл и складываем в папку к копии сертификата для авторизации, в дальнейшем он используется как ssl.key.Следующим этапом выбираем подтвержденный домен. Кстати сказать если поставить это дело на поток и брать например по 700 рублей за сертификат, то этот момент очень пригодится, так-как вы садите своих клиентов “на иглу” и перерегистрировать они все равно придут к вам 🙂 Но мы играем по честному и передаем все учетные данные и сертификаты клиентам, все равно вернутся, причем добровольно.
Дальше нам по честному предложено добавить один суб-домен. Логично для web-сайта добавить туда “www.домен.топлевел”, хотя последнее время брезгуют даже зону A для www делать, как-будто за субдомены деньги берут. Хотя может я не в курсе и уже берут 🙂
Далее следует предупреждение/информация о том, что все ок и сейчас нам все сделают. Это как в анекдоте про “кнопку которая делает Заебись”. Но тут есть один фокус CN становится второе введенное имя 🙂
Вот как недавно мы рассматривали момент, идите и не жмите кнопок, генерация довольно быстрая. Полученное сохраняем как ssl.crt. Это сертификат.По окончании процесса, вас поздравят за выбор компании и т.п. В целом этот процесс занимает около 20 минут неспешным шагом, и экономия около четырех тысяч рублей в год 🙂
Источник: https://acisi.livejournal.com/43034.html
Как с помощью шифрования сделать почтовый сервер более безопасным
Библиотека сайта rus-linux.net
Оригинал: How to secure a mail server using encryption, January 20, 2014, Автор: Sarmed Rahman Дата публикации: 20 января 2014 г. Перевод: Н.Ромоданов
Дата перевода: март 2014 г.
SSL (Secure Sockets Layer) и его потомок TLS (Transport Layer Security) являются наиболее широко используемыми протоколами шифрования данных, когда происходит обмен данными почтовым сервером и клиентом. В этих протоколах часто используются сертификаты X.509 и ассимметричная криптография.
Протокол STARTTTLS является еще одним способом повышения безопасности при использовании открытого текста.
Этот протокол также шифрует данные с помощью SSL или TLS, но с тем же портом, что и обычные текстовые протоколы вместо того, чтобы использовать отдельные порты для обмена данными, зашифрованными с помощью SSL/TLS.
Например, в протоколе IMAP с STARTTLS используется тот же самый порт, что и в IMAP (143), тогда как в протоколе IMAPS (IMAP с SSL) использует отдельный порт 993.
В предыдущем руководстве описывалось, как настроить почтовый сервер, работающий с использованием пакетов Postfix и Dovecot, но аспект безопасности затронут не был. В данном руководстве будет рассказано, как улучшить безопасность почтового сервера при помощи шифрования TLS/SSL.
Сертификаты, необходимые для TLS/SSL, могут быть самостоятельно подписанными, подписанными с использованием свободного сертификата (например, CAcert) или подписанными коммерческим центром (например, VeriSign), и могут быть сгенерированы с помощью таких утилит, как OpenSSL. В данном руководстве мы собираемся использовать собственный сертификат.
Включение шифрования TLS для Postfix
Самостоятельно подписанный сертификат можно создать с помощью следующей команды.
# openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/postfixcert.pem -keyout /etc/ssl/private/postfixkey.pem
Приведенная выше команда запрашивает новый сертификат, тип которого — X.509 и который будет действовать в течение 365 дней. Дополнительный параметр -nodes указывает, что закрытый ключ не должен быть зашифрован. Результирующий файл сертификата будет сохранен как postfixcert.pem, а файл с ключом выводится как postfixkey.pem.
Потребуется ввести все необходимые значения:
Country Name (2 letter code) [AU]:BD State or Province Name (full name) [Some-State]:Dhaka Locality Name (eg, city) []:Dhaka Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:Example.tst Common Name (e.g. server FQDN or YOUR name) []:mail.example.tst Email Address []:[email protected]
Теперь, когда сертификат готов, в конфигурационном файле postfix настраиваются необходимые параметры.
root@mail:~# vim /etc/postfix/main.cf ### STARTTLS is enabled ###
smtpd_tls_security_level = may smtpd_tls_received_header = yes smtpd_tls_auth_only = yes ### loglevel 3 should be used while troubleshooting ###
smtpd_tls_loglevel = 1 ### path to certificate and key file
smtpd_tls_cert_file = /etc/ssl/certs/postfixcert.pem smtpd_tls_key_file = /etc/ssl/private/postfixkey.pem smtpd_use_tls=yes
Перезапустите postfix для того, чтобы включить TLS.
root@mail:~# service postfix restart
Теперь postfix готов для шифрования данных, передаваемых с сервера и на сервер. Подробнее о поддержке TLS в Postfix можно найти в их официальном описании README.
Включение шифрования SSL для Dovecot
Конфигурирование dovecot для использования шифрования выполняется аналогично конфигурированию postfix.
Прежде всего с помощью openssl создается самостоятельно подписанный сертификат:
# openssl req -new -x509 -days 365 -nodes -out /etc/ssl/certs/dovecotcert.pem -keyout /etc/ssl/private/dovecotkey.pem
Приведенная выше команда запрашивает новый сертификат X.509, который действителен в течение 365 дней. Параметр -nodes является необязательным параметром, который определяет, что хранимый секретный ключ не должен быть зашифрован. Результирующим файлом сертификата будет файл dovecotcert.pem, а выходным файлом с ключом будет файл dovecotkey.pem.
В сертификате должны быть указаны все необходимые параметры:
Country Name (2 letter code) [AU]:BD
State or Province Name (full name) [Some-State]:Dhaka
Locality Name (eg, city) []:Dhaka
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:Example.tst
Common Name (e.g. server FQDN or YOUR name) []:mail.example.tst
Email Address []:[email protected]
Затем в конфигурацию dovecot добавляется путь к сертификату.
root@mail:~# vim /etc/dovecot/conf.d/10-ssl.conf ssl_cert =
Источник: https://rus-linux.net/MyLDP/server/secure-mail-server.html