Я слежу Настройте Postfix для отправки / ретрансляции писем Gmail (smtp.gmail.com) через порт 587 чтобы попытаться заставить соединение между Postfix и Gmail работать правильно. Инструкции понятны. После того, как выбранный ответ говорит, я получаю эту ошибку в своем почтовом журнале:
Dec 12 08:45:00 stiltify postfix/smtp[21745]: certificate verification failed for smtp.gmail.com: num=20:unable to get local issuer certificate
Dec 12 08:45:00 stiltify postfix/smtp[21745]: certificate verification failed for smtp.gmail.com: num=27:certificate not trusted
Dec 12 08:45:00 stiltify postfix/smtp[21745]: warning: SASL authentication failure: No worthy mechs found
Dec 12 08:45:00 stiltify postfix/smtp[21745]: 6BC962B58006: to=<some.address@yahoo.com>, relay=smtp.gmail.com[74.125.93.109]:587, delay=0.27, delays=0.05/0.01/0.21/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.gmail.com[74.125.93.109]: no mechanism available)
В поисках подобного сценария я обнаружил Постфикс «Ошибка аутентификации SASL: достойных мехов не найдено», но, глядя на детали выбранного ответа, он немного отличался, и я думаю, это означает, что отправляющий сервер не доверяет сертификату Gmail:
untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Итак, я снова столкнулся с проблемой рассылки и мне нужна ваша помощь.
Заранее спасибо!
Похоже, что потенциально под рукой две разные проблемы. Теперь я тот, кто дал ответ на вопрос о пересылке через Gmail, и мой был сделан на конфигурации ноутбука Ubuntu, а не на CentOS, и у меня, к сожалению, нет машины CentOS, на которой можно это проверить.
Мне кажется, что следующие проблемы могут вызывать проблемы.
Убедитесь, что установлены двоичные файлы и библиотеки SASL. На моих машинах Ubuntu / Debian это будет включать libsasl2-2
и libsasl2-modules
пакеты. Последний фактически предоставляет модули SO SASL, тогда как первый предоставляет библиотеки SASL DB.
Проверьте, установлен ли у вас доверенный сертификат корневой цепочки ЦС. На своих машинах Ubuntu / Debian я устанавливаю ca-certificate
пакет, который устанавливает известные сертификаты ЦС корневого уровня и позволяет мне установить цепочку сертификатов ЦС, которая проверяет сертификаты, подписанные известными ЦС.
Обновление для добавления после проверки моего ноутбука с Ubuntu ... Проблема с сертификатом на самом деле не является критической проблемой, поэтому элемент № 2, вероятно, не виноват, поскольку я сам получаю те же записи, но почта отправляется успешно, что больше склоняется к элементу № 1 быть причиной сбоев при отправке.
Dec 12 07:51:56 solitare postfix/smtp[17525]: setting up TLS connection to smtp.gmail.com[74.125.67.109]:587
Dec 12 07:51:56 solitare postfix/smtp[17525]: certificate verification failed for smtp.gmail.com[74.125.67.109]:587: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Dec 12 07:51:56 solitare postfix/smtp[17525]: Untrusted TLS connection established to smtp.gmail.com[74.125.67.109]:587: TLSv1 with cipher RC4-MD5 (128/128 bits)
Dec 12 07:51:58 solitare postfix/smtp[17525]: 41C7212823B: to=<root@****>, orig_to=<root>, relay=smtp.gmail.com[74.125.67.109]:587, delay=2.4, delays=0.22/0.01/0.62/1.5, dsn=2.0.0, status=sent (250 2.0.0 OK 1292158318 b27sm3067589ana.28)
Запустил экземпляр CentOS 5.4 на Amazon EC2 и осмотрелся ... В сочетании с пунктом 1 на CentOS я бы посмотрел, установлены ли у вас как минимум следующие пакеты: cyrus-sasl-lib
, cyrus-sasl-plain
и cyrus-sasl
... Есть другие cyrus-sasl-*
пакеты, предоставляющие отдельные модули SASL, если они вам понадобятся, но -lib
и -plain
должны быть самые необходимые основы.
Моя установка CentOS имела ту же проблему, и я решил ее, установив cyrus-sasl-plain
.
Я не думаю, что с сертификатом Gmail что-то не так, потому что, как вы сказали выше, он выдается Equifax1.
Я не сторонник постфиксов, но обычно причиной этого является то, что инструмент, выполняющий проверку (в данном случае постфикс), не имеет «пакета сертификатов» - набора аксиоматически доверенных сертификатов, которые инструмент использует для проверьте предоставленную ему цепочку сертификатов. Sendmail (который я использую) имеет следующую строку конфигурации m4, чтобы указать его на пакет:
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
Поищите что-нибудь подобное для postfix.
1 Хорошо, хорошо, он утверждает, что выпущен Equifax; но это действительно так, согласно моему пакету сертификатов:
[madhatta@risby ~]$ openssl s_client -starttls smtp -connect smtp.gmail.com:587
CONNECTED(00000003)
depth=2 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = smtp.gmail.com
verify return:1
[...]