Postfix + Google Mail. Zertifikatsüberprüfung fehlgeschlagen

7

Ich habe mein System so eingerichtet, dass E-Mails über Google Mail gesendet werden.

Das System funktioniert so weit, dass ich E-Mails senden kann. Es wird jedoch eine Fehlermeldung bezüglich des sicheren Zertifikats angezeigt.

Dies ist ein Beispieleintrag in der mail.log:

    Oct 29 12:17:27 durban postfix/smtp[20742]: setting up TLS connection
    to smtp.gmail.com[209.85.143.108]:587

    Oct 29 12:17:27 durban postfix/smtp[20742]: certificate verification
    failed for smtp.gmail.com[209.85.143.108]:587: untrusted issuer
    /C=US/O=Equifax/OU=Equifax Secure Certificate Authority

    Oct 29 12:17:27 durban postfix/smtp[20742]: Untrusted TLS connection
    established to smtp.gmail.com[209.85.143.108]:587: TLSv1 with cipher
    RC4-SHA (128/128 bits)

    Oct 29 12:17:29 durban postfix/smtp[20742]: BA4852A1BFA:
    to=<[email protected]>, relay=smtp.gmail.com[209.85.143.108]:587,
    delay=2.9, delays=0.1/0.1/1.3/1.4, dsn=2.0.0, status=sent (250 2.0.0
    OK 1319887049 l20sm20686943wbo.6)

Ich habe dieses Problem gegoogelt und andere mit dem Problem gefunden, die es durch Aktualisieren einer Datei namens cacert.pem im Verzeichnis / etc / postfix lösen konnten.

In meiner main.cf habe ich (unter anderem) folgende Zeile:

smtpd_tls_CAfile=/etc/postfix/cacert.pem

Ich habe diese Datei:

-rw-r--r-- 1 root root 2298 2011-10-29 12:16 cacert.pem

Ich habe diese Datei mit den Befehlen gefüllt:

# cat /usr/lib/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem
# cat /usr/lib/ssl/certs/Thawte_Premium_Server_CA.pem >>
      /etc/postfix/cacert.pem

Ich glaube, die erste Zeile sollte ausreichen und die zweite Zeile (Zertifikat) ist ein altes, nicht mehr verwendetes (von Google) Zertifikat.

Ich weiß nicht, was ich sonst noch ändern kann, und habe keine Ahnung, wonach ich noch suchen oder welche Protokolldateien ich überprüfen soll.

Alle Hinweise geschätzt.

BWi
quelle

Antworten:

10

Ich hatte das gleiche Problem und als ich "postconf | grep smtp | grep CA" herausgab, waren alle Variablen leer: smtp_tls_CAfile = smtp_tls_CApath = smtpd_tls_CAfile = smtpd_tls_CApath =

Hier ist, wie ich es behoben habe;

Ich gehe davon aus, dass Ihre Ubuntu-Installation den CA-Pfad erstellt hat, der alle bekannten CAs im Internet enthält: / etc / ssl / certs, und Equifax ist da.

In Ihrer Postfix-Konfiguration fehlt lediglich der CApath : smtp_tls_CApath = / etc / ssl / certs

Anschließend kann Postfix das Zertifikat von smtp.gmail.com als legitime Zertifizierungsstelle überprüfen, da es sich im Verzeichnis / etc / ssl / certs befindet.

Edmond Baroud
quelle
Schnelle und einfache Möglichkeit , dies zu addieren , wenn Sie in Eile sind , sudo postconf -e 'smtp_tls_CApath = /etc/ssl/certs'dannsudo service postfix restart
Phil
Die CApathEinstellung ist nicht nützlich, wenn der SMTP-Dämon in einem Chroot-Gefängnis ausgeführt wird, was normalerweise der Fall ist.
Davmac
4

Ich denke, Ihr Problem ist, dass Sie smtpd_tls_CAfilestatt einstellen smtp_tls_CAfile.

Sie können ein selbstsigniertes Zertifikat für Ihre Postfix-TLS-Konfiguration verwenden.

Mike Partridge
quelle
2

Ich habe die gleiche Konfiguration wie Sie. Aber zusätzlich zu

smtpd_tls_CAfile=/etc/postfix/cacert.pem

Ich habe auch in meinen Postfixes main.cf:

smtp_tls_CAfile=/etc/postfix/cacert.pem

Versuchen Sie, diese zusätzliche Zeile hinzuzufügen. Möglicherweise müssen Sie es als Teil dieses Blocks hinzufügen:

smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file = /etc/postfix/FOO-cert.pem
smtp_tls_key_file = /etc/postfix/FOO-key.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls = yes
David Xia
quelle
0

Ich hatte ein ähnliches Problem, das ich mit Hilfe dieses Blogposts behoben habe .

Das Mittel schien zu sein, dass ich nur ein gültiges SSL-Zertifikat (kein selbstsigniertes) benötigte und die StartSSL- und Equifax CA-Bundles miteinander verkettete.

Jonathon Hill
quelle