Roundcube ve Postfix SMTP: SSL rutinleri: SSL3_READ_BYTES: tlsv1 uyarısı bilinmiyor ca: s3_pkt.c


10

Kişisel olarak kullandığım ve diğer kullanıcılara verdiğim Postfix / Dovecot / Roundcube kurulumum var. Tüm kurulumu yeni bir kutuya aktarmaya çalışıyorum, ancak bazı sorunlar yaşıyorum.

Posta alımı iyi çalışıyor (yalnızca dahili olarak test edildi, alan adı henüz aktarılmadı.) Ve TLS / SSL (örneğin Thunderbird) kullanarak harici IMAP ve SMTP harika çalışıyor

Sorun IMAP'ı 127.0.0.1'e kadar kullanabilen ve kullanıcının e-postasını harika bir şekilde görüntüleyen ancak e-posta gönderemeyen yuvarlak küp kurulumumla ilgili: "SMTP Error (220): Authentication failed."

Garip bir şekilde, mevcut sunucumda kullandığım Postfix / Dovecot yapılandırmasıyla, Roundcube artık yeni sunucumda erişemiyor. İlgili yuvarlak küp yapılandırması:

$config['smtp_server'] = 'tls://localhost';

// Log SMTP conversation to <log_dir>/smtp or to syslog
$config['smtp_debug'] = true;

// SMTP port (default is 25; use 587 for STARTTLS or 465 for the
// deprecated SSL over SMTP (aka SMTPS))
$config['smtp_port'] = 587;

// SMTP username (if required) if you use %u as the username Roundcube
// will use the current username for login
$config['smtp_user'] = '%u';

// SMTP password (if required) if you use %p as the password Roundcube
// will use the current user's password for login
$config['smtp_pass'] = '%p';

Roundcube günlükleri / hata günlüğü basitçe şöyle diyor:

[02-Jan-2015 16:55:49 America/New_York] STARTTLS failed (): 
[02-Jan-2015 16:55:49 -0500]: SMTP Error: SMTP error: Authentication failure: STARTTLS failed (Code: ) in /var/wwwmail/program/lib/Roundcube/rcube.php on line 1505 (POST /?_task=mail&_unlock=loading1420235752730&_lang=undefined&_framed=1?_task=mail&_action=send)

Roundcube günlükleri / smtp günlüğü şunu gösterirken:

[02-Jan-2015 17:50:01 -0500]: Recv: 220 example.net ESMTP Postfix
[02-Jan-2015 17:50:01 -0500]: Send: EHLO example.net
[02-Jan-2015 17:50:01 -0500]: Recv: 250-example.net
[02-Jan-2015 17:50:01 -0500]: Recv: 250-PIPELINING
[02-Jan-2015 17:50:01 -0500]: Recv: 250-SIZE 104857600
[02-Jan-2015 17:50:01 -0500]: Recv: 250-VRFY
[02-Jan-2015 17:50:01 -0500]: Recv: 250-ETRN
[02-Jan-2015 17:50:01 -0500]: Recv: 250-STARTTLS
[02-Jan-2015 17:50:01 -0500]: Recv: 250-ENHANCEDSTATUSCODES
[02-Jan-2015 17:50:01 -0500]: Recv: 250-8BITMIME
[02-Jan-2015 17:50:01 -0500]: Recv: 250 DSN
[02-Jan-2015 17:50:01 -0500]: Send: STARTTLS
[02-Jan-2015 17:50:01 -0500]: Recv: 220 2.0.0 Ready to start TLS
[02-Jan-2015 17:50:01 -0500]: Send: RSET
[02-Jan-2015 17:50:01 -0500]: Recv: M I A…"qhçR¸
[02-Jan-2015 17:50:01 -0500]: Send: QUIT

İşte /etc/postfix/main.cf dosyasındaki postfix config'imin ilgili parçacıkları

# TLS parameters for SMTP service
smtpd_tls_security_level    = may
smtpd_tls_cert_file         = /etc/ssl/private/example.net/example.net.crt
smtpd_tls_key_file          = /etc/ssl/private/example.net/example.net.key
smtpd_tls_auth_only         = yes

İşte /etc/postfix/master.cf dosyasındaki postfix config'imin ilgili parçacıkları

smtp      inet  n       -       -       -       -       smtpd
  -o content_filter=spamassassin
submission inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o cleanup_service_name=cleanup_submit
smtps     inet  n       -       -       -       -       smtpd
  -o content_filter=spamassassin
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Postfix günlüğü /var/log/mail.logaşağıdaki hataları rapor eder:

Jan  2 17:50:01 example postfix/submission/smtpd[19959]: connect from localhost.localdomain[127.0.0.1]
Jan  2 17:50:01 example postfix/submission/smtpd[19959]: SSL_accept error from localhost.localdomain[127.0.0.1]: 0
Jan  2 17:50:01 example postfix/submission/smtpd[19959]: warning: TLS library problem: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1292:SSL alert number 48:
Jan  2 17:50:01 example postfix/submission/smtpd[19959]: lost connection after STARTTLS from localhost.localdomain[127.0.0.1]
Jan  2 17:50:01 example postfix/submission/smtpd[19959]: disconnect from localhost.localdomain[127.0.0.1]

Benzer hata kodlarına sahip birkaç soru daha okudum, ancak hepsi ya kendinden imzalı sertifikalar kullanıyor ya da denediğim / etc / ssl / certs / 'den sertifikanın karmasına bir bağlantı ekliyor gibi görünüyor. yanlış anlaşılmış ve yanlış sertifikayı bağlamış olabilir.

Roundcube, openssl nedeniyle php sürümü uyumsuzluğu ile ilgili bir sorunu düzeltmesi beklenen 1.0.4'e güncellendi. Fikirlerim bitti, herhangi bir fikriniz var mı?


1
Sistem güncel mi?
Michael Hampton

Evet. Üzgünüm, yukarıda bahsettiğim, bu yeni kurulmuş bir Debian jessie sistemi, ya da olağanüstü yükseltme yok.
1n5aN1aC

Yanıtlar:


11

Yukarıdaki hata iletisi, bir istemci (roundcube tarafından çağrılan PHP betiği) bilinmeyen CA nedeniyle eş sertifikayı doğrulayamıyor gibi görünüyor . Bu hatanın olmasının birçok nedeni vardır.

Openssl ile ilgili olarak, Roundcube sürüm 1.0-RC ve daha sonra SSL bağlantı seçeneği ile gönderilir. Parametre smtp_conn_optionsve imap_conn_optionssırasıyla 1.0-RC ve 1.0.3 sürümlerinde eklenmiştir. Varsayılan olarak, her iki parametrenin değeri null idi. Aşağıdaki pasaj yuvarlak küp dosyadan alınmıştır config/defaults.inc.php. Bu parametrenin tam tanımını almak için PHP kılavuzuna başvurabilirsiniz .

// SMTP socket context options
// See http://php.net/manual/en/context.ssl.php
// The example below enables server certificate validation, and
// requires 'smtp_timeout' to be non zero.
// $config['smtp_conn_options'] = array(
//   'ssl'         => array(
//     'verify_peer'  => true,
//     'verify_depth' => 3,
//     'cafile'       => '/etc/openssl/certs/ca.crt',
//   ),
// );
$config['smtp_conn_options'] = null;

Kendinden imzalı sertifika kullanan birçok sistemde, varsayılan değer PHP 5.5 ve öncesi için çalışır. Varsayılan olarak, PHP 5.6 kurulu CA'ya karşı eş sertifikasını doğrular ve eş adını doğrular .

Şimdi, Debian jessie de varsayılan PHP sürüm 5.6 ile birlikte geliyor gibi görünüyor . Görünüşe göre PHP postfix sertifikasını doğrulayamıyor. Olası nedenler, PHP verify_peer_name (ana bilgisayar adında localhost belirttiğiniz için) veya verify_peer'de (CA bilinmediği için) başarısız oluyor


Arch Linux kullanıcısı için de benzer bir durum yaşandı . Çözüm ya:

  • CA sertifikasını openssl cert dizinine yükleme
  • Roundcube smtp_server seçeneğinde localhost'u Postfix FQDN olarak değiştirin (OP'den çözüm)
  • Smtp_conn_options içinde verify_peer ve / veya verify_peer_name'yi devre dışı bırak

2
Çok teşekkür ederim! Görünen o ki, localhost yerine yuvarlak küpün FQDN'yi kullanmasını söyleyen basit bir değişiklik anında düzeltildi! Php daha önce bu ayarları değiştirmişti bilseydim!
1n5aN1aC


0

dovecot kullandığım için benim çözümüm /etc/dovecot/dovecot.conf

ssl_ca = </etc/ssl/ca.pem

-2

Aynı hatayla karşılaştım. Postfix main.cf dosyasına CA dosyasını ekleyerek düzeltin. İçinde yer olabilir /etc/postfix/main.cf.

smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/foo-cert.pem
smtpd_tls_key_file = /etc/postfix/foo-key.pem


-2

aynı sorun! Kirli bir geçici çözümü hızlı bir şekilde değiştirin: config / defaults.inc.php verify_peer 'da false olarak değiştirin.

$config['smtp_conn_options'] = array(
   'ssl'         => array(
     'verify_peer'  => false,
     'verify_depth' => 3,
     'cafile'       => '/etc/openssl/certs/ca.crt',
   ),
);

SADECE Test için UYARI; ÜRETİM İÇİN DEĞİL Ortamlar


1
Girdiğiniz uyarı ile bile, bu hala harika bir fikir değil: OP, sorunun SSL / TLS ile ilgili olduğunu biliyor ve sertifika kontrollerinin devre dışı bırakılması, SSL / TLS'nin sağlayacağı güvenliklerin çoğunu kaldırırken 'işleri işler hale getirecek'. Belki OP için daha yararlı olacaktır (muhtemelen ile verify_peer => true), yapılandırma bloğunuzda yürümek ve neyi cafileişaret etmesi gerektiğini açıklamak .
iwaseatenbyagrue
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.