Настройка SSL в электронной почте с помощью Dovecot и Postfix

На моем сервере я установил Postfix, Dovecot и Apache2 на Ubuntu.

Я купил сертификат SSL и использовал его для защиты сайта. Это прекрасно работает.

Теперь я хочу настроить Postfix и Dovecot с одним и тем же сертификатом, чтобы я мог также использовать свой почтовый сервер с SSL. Но когда я настроил его в своем приложении gmail на телефоне, я получил следующее:

Certificate not trusted
Subject: kanzan.se
Issuer: AlphaSSL CA - SHA256 - G2
Valid from: Jul 3, 2018
Expires on: Jul 4, 2019
Current date: Jul 6, 2018
PEM encoded chain: -----BEGIN CERTIFICATE-----
MIIFzTCCBLWgAwIBAgIMdmzZXlCIkPQV/MbvMA0GCSqGSIb3DQEBCwUAMEwxCzAJBgN...

Это мои конфигурации:

/etc/postfix/main.cf:

smtpd_tls_cert_file=/etc/ssl/certs/kanzan_cert_comb.crt
smtpd_tls_key_file=/etc/ssl/private/kanzan_ssl.key
smtpd_use_tls=yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sender_login_maps = hash:/etc/postfix/controlled_envelope_senders
smtpd_recipient_restrictions = permit_sasl_authenticated
#reject_sender_login_mismatch

/etc/dovecot/conf.d/ 10-ssl.conf:

ssl = yes
ssl_cert = </etc/ssl/certs/kanzan_cert_comb.crt
ssl_key = </etc/ssl/private/kanzan_ssl.key

/etc/postfix/master.cf:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes

smtps     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes

Прежде всего, могу ли я использовать один и тот же сертификат для почты и веб-сайта? (тот же домен). Я добавил в свой DNS запись MX, которая указывает на этот домен, kanzan.se.

Мои конфигурации верны?

1
задан 6 July 2018 в 13:29
1 ответ

Это проблема с цепочка сертификатов , отправленная вместе с сертификатом. Вы можете использовать один и тот же сертификат с Apache2, Postfix и Dovecot. Однако конфигурация промежуточных сертификатов отличается: Apache имеет отдельную директиву SSLCertificateChainFile , а Postfix и Dovecot требуют, чтобы промежуточные сертификаты находились в одном файле ( smtpd_tls_cert_file / ssl_cert ).

Тестирование текущей конфигурации с помощью openssl s_client -debug -connect ,оба kanzan.se:465 для SMTPS и kanzan.se:443 для HTTPS показывают только один сертификат.

Certificate chain
 0 s:/OU=Domain Control Validated/CN=kanzan.se
   i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2

Это также должно показать промежуточные сертификаты, полную цепочку до корня CA:

Certificate chain
  0 s:/OU=Domain Control Validated/CN=kanzan.se
    i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
  1 s:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
    i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
  2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
    i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA

Чтобы настроить это для Postfix и Dovecot (и Apache):

  1. Вы можете получить промежуточный сертификат из GlobalSign AlphaSSL Intermediate Certificates . Вам нужен тот, у которого серийный 040000000001444ef03631 .

     / etc / ssl / certs # wget https://secure.globalsign.com/cacert/gsalphasha2g2r1.crt
     

    Корневой CA GlobalSign должен находиться в GlobalSign_Root_CA.pem . Вы можете проверить серийный номер:

     / etc / ssl / certs $ openssl x509 -in GlobalSign_Root_CA.pem -serial -noout
    серийный = 040000000001154B5AC394
     
  2. Все сертификаты должны быть в формате PEM, защищенном ASCII, а загруженный gsalphasha2g2r1.crt в настоящее время имеет двоичный формат с кодировкой DER. Вам необходимо преобразовать его, используя:

     openssl x509 -inform DER -in gsalphasha2g2r1.crt -out gsalphasha2g2r1.pem
     
  3. Объедините сертификаты, как описано в файле readme Postfix TLS . Порядок такой же для Dovecot .

     cat kanzan_cert_comb.crt gsalphasha2g2r1.pem GlobalSign_Root_CA.pem> postfix.crt
     
  4. Используйте эти сертификаты:

    • Postfix: smtpd_tls_cert_file = / etc / ssl / certs / postfix.crt
    • Docevot: ssl_cert =
    • Apache, добавьте: SSLCertificateChainFile /etc/ssl/certs/gsalphasha2g2r1.crt
1
ответ дан 3 December 2019 в 23:14

Теги

Похожие вопросы