Postfix, mehrere Domänen und mehrere Zertifikate auf einer IP

Postfix, mehrere Domänen und mehrere Zertifikate auf einer IP

Ich habe einen Postfix-Server mit mehreren Domänen und möchte für jede ein eigenes Zertifikat haben. Mein Server hat nur eine IP.

Ich habe eine Lösung mit mehreren IPs gefunden, aber ohne weiß ich nicht, wie das geht.

  • Server: Debian 9
  • Postfix: 3.1.8

Antwort1

Soweit ich weiß, gibt es in Postfix noch kein funktionierendes SNI. Docs (http://www.postfix.org/TLS_README.html) sagen, dass „es keine Pläne gibt, SNI im Postfix SMTP-Server zu implementieren.“, obwohl Victor im Januar erwähnte, dass er SNI-Unterstützung zu Postfix 3.4 hinzufügen möchte. Alternativen:

  • mehrere IP
  • Zertifikat, das alle Domänennamen enthält.

Es ist auch nichts falsch daran, für alle Domänen dasselbe MX zu verwenden. Der MX-Hostname ist Ihre Servicedomäne oder so etwas. Auch der Helo/Ehlo-Name ist auf denselben/ähnlichen Hostnamen konfiguriert. Wenn es für GoogleApps und andere große E-Mail-Anbieter gut ist, dann ist es auch für uns gut.

Antwort2

Wenn Sie Postfix >=3.4 verwenden, berücksichtigen Sie die folgenden Schritte als angepasstvon diesem Link:

Schritt 1: Kommentieren Sie die oberen beiden Zeilen aus und fügen Sie die folgenden Zeilen zu /etc/postfix/main.cf hinzu:

    # smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
    # smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
    
    # provide the primary certificate for the server, to be used for outgoing connections (note the indentation)
    smtpd_tls_chain_files =
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem,
        /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    
    # provide the map to be used when SNI support is enabled
    tls_server_sni_maps = hash:/etc/postfix/vmail_ssl.map

Schritt 2: Erstellen Sie die Datei /etc/postfix/vmail_ssl.map mit Folgendem:

    # Compile with postmap -F hash:/etc/postfix/vmail_ssl.map when updating
    # One host per line
    mail.yourprimarymailserverdomain.com /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yourprimarymailserverdomain.com/fullchain.pem
    mail.yoursecondarymailserverdomain.com /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/privkey.pem /etc/letsencrypt/live/mail.yoursecondarymailserverdomain.com/fullchain.pem
    # add more domains with keys and certs as needed

Schritt 3: Laufen postmap -F hash:/etc/postfix/vmail_ssl.map.

Schritt 4: Laufen systemctl restart postfix.

Schritt 5: Testen Sie jetzt die SSLs Ihrer Domänen! Führen Sie für jede Ihrer Domänen den folgenden Befehl aus:openssl s_client -connect localhost:25 -servername mail.mydomainname.com -starttls smtp

Antwort3

Für diejenigen, die es nicht wissen: Die SNI-Tabelle muss bei jeder Änderung eines Zertifikats neu erstellt werden, da die zugrunde liegende Tabelle generiert wird, mit postmap -Fder die Datei importiert wird.Inhalt(es speichert nicht nur Verweise auf die Dateinamen).

postmap -F hash:/etc/postfix/tls_server_sni_maps.map

Antwort4

Postfix Version 3.4 unterstützt jetzt SNI und ist daher beispielsweise in Ubuntu 19.10 verfügbar.

Außerdem gibt es einen guten Grund dafür: Clients wie Outlook versuchen, die automatische Konfiguration mit einem Servernamen durchzuführen, der mit dem E-Mail-Domänennamen übereinstimmt. Wenn Ihr E-Mail-Konto bei Gmail oder einer anderen gemeinsam genutzten Domäne liegt, ist dies kein Problem, aber eine persönliche Domäne, die auf einem Server (selbst einem VPS) mit mehreren Domänen gehostet wird, erfordert eine solche Lösung.

verwandte Informationen