Configure SSL no email com Dovecot e Postfix

1

No meu servidor eu instalei o Postfix e o Dovecot e o Apache2 no Ubuntu.

Comprei um certificado SSL e usei-o para proteger o site. Isso funciona bem.

Agora eu quero configurar o Postfix e o Dovecot com o mesmo certificado para que eu possa usar meu servidor de e-mail com SSL também. Mas quando eu configuro no meu aplicativo do Gmail no telefone, eu entendo isso:

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...

Estas são minhas configurações:

/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

Primeiro de tudo, posso usar o mesmo certificado para email e site? (mesmo domínio). Eu adicionei um registro MX ao meu DNS que aponta para este domínio, kanzan.se.

As minhas configurações estão corretas?

    
por user2908112 06.07.2018 / 10:20

1 resposta

1

Este é um problema com a cadeia de certificados enviada com o certificado. Você pode usar o mesmo certificado com Apache2, Postfix e Dovecot. No entanto, a configuração para certificados intermediários é diferente: o Apache tem uma diretiva separada SSLCertificateChainFile , enquanto o Postfix e o Dovecot exigem certificados intermediários no mesmo arquivo ( smtpd_tls_cert_file / ssl_cert ).

Testando sua configuração atual com openssl s_client -debug -connect , tanto kanzan.se:465 para SMTPS quanto kanzan.se:443 para HTTPS mostram apenas um certificado.

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

Isso também deve mostrar os certificados intermediários, sendo a cadeia completa da CA raiz:

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

Para configurar isso no Postfix e no Dovecot (e no Apache):

  1. Você pode obter o certificado intermediário da GlobalSign Certificados intermediários do AlphaSSL . Você precisa daquele com serial 040000000001444ef03631 .

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

    A CA raiz da GlobalSign deve estar em GlobalSign_Root_CA.pem . Você pode verificar a serial:

    /etc/ssl/certs$ openssl x509 -in GlobalSign_Root_CA.pem -serial -noout
    serial=040000000001154B5AC394
    
  2. Todos os certificados precisam estar em formato PEM blindado ASCII, enquanto o gsalphasha2g2r1.crt está atualmente em formato binário codificado por DER. Você precisa convertê-lo usando:

    openssl x509 -inform DER -in gsalphasha2g2r1.crt -out gsalphasha2g2r1.pem
    
  3. Combine os certificados conforme explicado em Leiame do TLS do Postfix . A ordem é a mesma para Dovecot .

    cat kanzan_cert_comb.crt gsalphasha2g2r1.pem GlobalSign_Root_CA.pem > postfix.crt
    
  4. Use esses certificados:

    • Postfix: smtpd_tls_cert_file=/etc/ssl/certs/postfix.crt
    • Docevot: ssl_cert = </etc/ssl/certs/postfix.crt
    • Apache, adicione: SSLCertificateChainFile /etc/ssl/certs/gsalphasha2g2r1.crt
por 06.07.2018 / 11:01