রাউন্ডক्यूब এবং পোস্টফিক্স এসএমটিপি: এসএসএল রুটিনগুলি: SSL3_READ_BYTES: tlsv1 সতর্কতা অজানা সিএ: s3_pkt.c


10

আমার একটি পোস্টফিক্স / ডোভকোট / রাউন্ডকিউব সেটআপ রয়েছে যা আমি ব্যক্তিগতভাবে ব্যবহার করি, পাশাপাশি অন্যান্য ব্যবহারকারীদেরও সরবরাহ করি। আমি এই পুরো সেটআপটি একটি নতুন বাক্সে স্থানান্তর করার চেষ্টা করছি, তবে কিছু সমস্যা রয়েছে।

মেল প্রাপ্তি সূক্ষ্মভাবে কাজ করছে, (কেবলমাত্র অভ্যন্তরীণভাবে পরীক্ষা করা হয়েছে, ডোমেনটি এখনও স্থানান্তরিত হয়নি)) পাশাপাশি বাহ্যিক আইএমএপি এবং এসএমটিপি টিএলএস / এসএসএল ব্যবহার করে দুর্দান্ত কাজ করছে (উদাহরণস্বরূপ থান্ডারবার্ড)

সমস্যাটি আমার রাউন্ডক्यूब সেটআপের সাথে, যা 127.0.0.1 এ IMAP ব্যবহার করতে পারে এবং ব্যবহারকারীর ইমেলটি আশ্চর্যরূপে প্রদর্শন করে, তবে ইমেলটি প্রেরণ করতে পারে না, কেবল দাবি করে: "SMTP Error (220): Authentication failed."

আশ্চর্যের সাথে, একই পোস্টফিক্স / ডোভকোট কনফিগারেশনের সাথে আমি আমার বর্তমান সার্ভারে ব্যবহার করেছি, রাউন্ডকিউব এটি আর আমার নতুন সার্ভারে অ্যাক্সেস করতে পারে না। এখানে প্রাসঙ্গিক রাউন্ডকিউব কনফিগারেশন রয়েছে:

$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';

রাউন্ডকিউবের লগ / ত্রুটি লগ সহজভাবে বলে:

[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)

রাউন্ডকিউবের লগগুলি / এসএমটিপি লগগুলি দেখানোর সময়:

[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

এখানে /etc/postfix/main.cf থেকে আমার পোস্টফিক্স কনফিগারেশনের সম্পর্কিত স্নিপেটগুলি রয়েছে

# 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

/Etc/postfix/master.cf থেকে আমার পোস্টফিক্স কনফিগারেশনের সম্পর্কিত স্নিপেটগুলি এখানে

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

পোস্টফিক্স লগ /var/log/mail.logনিম্নলিখিত ত্রুটিগুলি রিপোর্ট করে:

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]

আমি অনুরূপ ত্রুটি কোডগুলি সহ আরও কয়েকটি প্রশ্ন পড়েছি, তবে তারা সকলেই স্ব-স্বাক্ষরিত শংসাপত্রগুলি ব্যবহার করছে, বা / ইত্যাদি / এসএসএল / সার্টিফিকেটগুলি / যা আমি চেষ্টা করেছি, থেকে শংসাপত্রের হ্যাশটিতে একটি লিঙ্ক যুক্ত করছে বলে মনে হচ্ছে, যদিও আমি মিস-বোধগম্য হতে পারে এবং ভুল শংসাপত্রটি যুক্ত করেছে।

রাউন্ডকিউবকে 1.0.4 এ আপডেট করা হয়েছে, যা ওপেনসেলের কারণে পিএইচপি সংস্করণ অসঙ্গতি সহ কোনও সমস্যা সমাধান করার কথা ছিল। আমি সব ধারণার বাইরে, কারও কোন ধারণা আছে?


1
সিস্টেম আপ টু ডেট আছে?
মাইকেল হ্যাম্পটন

হ্যাঁ. দুঃখিত, আমি উপরে উল্লেখ করতে ভুলে গেছি যে এটি একটি সম্প্রতি ইনস্টল করা ডিবিয়ান জেসি সিস্টেম, কোনও অসামান্য আপগ্রেড নেই।
1n5aN1aC

উত্তর:


11

উপরের ত্রুটি বার্তাটি ক্লায়েন্টের মতো দেখাচ্ছে (পিএইচপি স্ক্রিপ্টটি রাউন্ডক्यूब দ্বারা চালিত) পিয়ার শংসাপত্র যাচাই করতে ব্যর্থ হয়েছে কারণ অজানা সিএ । এই ত্রুটি হওয়ার কারণ অনেক কারণ রয়েছে।

ওপেনসেল সম্পর্কিত, রাউন্ডক्यूब সংস্করণ 1.0-আরসি এবং পরে এসএসএল সংযোগ বিকল্পের সাথে প্রেরণ করা হয়েছে। পরামিতি smtp_conn_optionsএবং imap_conn_optionsযথাক্রমে সংস্করণ 1.0-আরসি এবং 1.0.3 এ যুক্ত হয়েছিল। ডিফল্টরূপে, উভয় পরামিতির মান শূন্য ছিল। নীচের স্নিপেটটি রাউন্ডক्यूब ফাইল থেকে নেওয়া হয়েছিল config/defaults.inc.php। এই প্যারামিটারটির সম্পূর্ণ বিবরণ পেতে আপনি পিএইচপি ম্যানুয়ালটি উল্লেখ করতে পারেন ।

// 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;

অনেকগুলি সিস্টেমে যারা স্বাক্ষরিত শংসাপত্র ব্যবহার করেন, ডিফল্ট মান পিএইচপি 5.5 এবং তার আগেরটির জন্য কাজ করে। ডিফল্টরূপে, পিএইচপি 5.6 ইনস্টলড সিএর বিপরীতে পিয়ার শংসাপত্রটি যাচাই করবে এবং পিয়ারের নামটি যাচাই করবে

এখন, দেখে মনে হচ্ছে ডেবিয়ান জেসিও ডিফল্ট পিএইচপি সংস্করণ 5.6 এর সাথে প্রেরণ করেছে । দৃশ্যত পিএইচপি পোস্টফিক্স শংসাপত্র যাচাই করতে ব্যর্থ। সম্ভাব্য কারণগুলি, পিএইচপি ভেরিফিকেশন_পায়ার_নামে (কারণ আপনি হোস্টনামে লোকালহোস্ট নির্দিষ্ট করেছেন) বা ভেরিফাই_পিয়ারে ব্যর্থ হয়েছে (কারণ সিএ অজানা ছিল)


একই রকম ঘটনা আর্চ লিনাক্স ব্যবহারকারীর ক্ষেত্রেও হয়েছিল । সমাধানটি ছিল:

  • ওপেনসেল সার্ট ডিরেক্টরিতে সিএ শংসাপত্র ইনস্টল করুন
  • রাউন্ডক्यूब smtp_server বিকল্পে লোকালহোস্ট পোস্টফিক্স এফকিউডিএন (ওপি থেকে সমাধান) এ পরিবর্তন করুন
  • Smtp_conn_options এ যাচাই_পিয়ার এবং / অথবা যাচাই_পিয়র_নাম অক্ষম করুন

2
আপনাকে অনেক ধন্যবাদ! দেখা যাচ্ছে, লোকালহোস্টের পরিবর্তে এফকিউডিএন ব্যবহার করতে রাউন্ডক्यूब বলার একটি সাধারণ পরিবর্তন তাৎক্ষণিকভাবে ঠিক করে দিয়েছে! ইচ্ছে করে আমি পিএইচপি জানতাম আগে এই সেটিংস পরিবর্তন!
1n5aN1aC

1

পিএইচপি 5.6 এসএসএল পিয়ার যাচাই করে, এর অর্থ এটি এসএমটিপি সার্ভারের পরিচিত সিএ কিনা তা শংসাপত্রটি পরীক্ষা করে that

Smtp_server বিকল্পটি অবশ্যই শংসাপত্রের সিএন ফিল্ডের সাথে মেলে! (সাধারণ নাম)

সুতরাং লোকালহোস্টটি সেখানে রাখবেন না, সেখানে আপনার সম্পূর্ণ শুল্কযুক্ত ডোমেন নাম রাখুন যা আপনার শংসাপত্রের সাথে মেলে।

ক্রেডিটগুলিতে: https://www.blogobramje.nl/posts/Roundcube_sending_mail_broken_with_PHP_5.6_-_STARTTLS_failed/


0

কারণ আমি ডোভকোট ব্যবহার করি আমার সমাধানটি ছিল সিএএতে যুক্ত করা /etc/dovecot/dovecot.conf

ssl_ca = </etc/ssl/ca.pem

-2

আমারও ত্রুটি ছিল এটি পোস্টফিক্স মেইন সিএফ ফাইলটিতে সিএ ফাইল যুক্ত করে ঠিক করুন। অবস্থানটি হতে পারে /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

একই সমস্যা! দ্রুত একটি নোংরা কাজ: কনফিগারেশন / Defaults.inc.php যাচাই_পিয়ারকে মিথ্যা হিসাবে পরিবর্তন করুন।

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

পরীক্ষার জন্য কেবল সতর্কতা; উত্পাদন পরিবেশের জন্য নয়


1
এমনকি আপনি যে সতর্কতাটি রেখেছিলেন তা সহ, এটি এখনও দুর্দান্ত ধারণা নয়: ওপি এই বিষয়টিকে এসএসএল / টিএলএস সম্পর্কিত বলে জানে এবং এসএসএল / টিএলএস সরবরাহ করবে এমন অনেক সুরক্ষা অপসারণ করার সময় সার্টিফিকেট পরীক্ষাগুলি নিষ্ক্রিয় করে 'বিষয়গুলিকে কাজ করবে'। সম্ভবত ওপিটির জন্য আরও দরকারী হ'ল আপনার কনফিগারেশন ব্লকটি (সম্ভাব্য সহ verify_peer => true) দিয়ে চলতে হবে এবং কী কী cafileনির্দেশ করতে হবে তা ব্যাখ্যা করছে।
iwaseatenbyagrue
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.