From 14e2f1705aa7bc54050927b00921960fb6c23b4f Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Fri, 10 Oct 2014 18:26:46 +0400 Subject: [PATCH] Moved [labs.verify_ssl_certificates] setting to ssl section ([ssl.verify_certificate] = Off) Added [ssl.cafile] = '' setting --- rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php | 10 +++++----- rainloop/v/0.0.0/app/libraries/RainLoop/Api.php | 12 ++++++++++++ .../app/libraries/RainLoop/Config/Application.php | 6 +++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php index 6daa4f7f4..9c8f89f0d 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -1374,7 +1374,7 @@ class Actions $this->MailClient() ->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())), $oAccount->Domain()->IncPort(), $oAccount->Domain()->IncSecure(), - $oAccount->Domain()->IncVerifySsl(!!$this->Config()->Get('labs', 'verify_ssl_certificates'))) + $oAccount->Domain()->IncVerifySsl(!!$this->Config()->Get('ssl', 'verify_certificate'))) ->Login($oAccount->IncLogin(), $oAccount->Password()) ; } @@ -2785,7 +2785,7 @@ class Actions $iTime = \microtime(true); $oImapClient->Connect($oDomain->IncHost($oDomain->Name()), $oDomain->IncPort(), - $oDomain->IncSecure(), $oDomain->IncVerifySsl(!!$this->Config()->Get('labs', 'verify_ssl_certificates'))); + $oDomain->IncSecure(), $oDomain->IncVerifySsl(!!$this->Config()->Get('ssl', 'verify_certificate'))); $iImapTime = \microtime(true) - $iTime; $oImapClient->Disconnect(); @@ -2813,7 +2813,7 @@ class Actions $iTime = \microtime(true); $oSmtpClient->Connect($oDomain->OutHost($oDomain->Name()), $oDomain->OutPort(), '127.0.0.1', - $oDomain->OutSecure(), $oDomain->OutVerifySsl(!!$this->Config()->Get('labs', 'verify_ssl_certificates'))); + $oDomain->OutSecure(), $oDomain->OutVerifySsl(!!$this->Config()->Get('ssl', 'verify_certificate'))); $iSmtpTime = \microtime(true) - $iTime; $oSmtpClient->Disconnect(); @@ -4684,7 +4684,7 @@ class Actions 'From' => empty($sFrom) ? $oAccount->Email() : $sFrom, 'Login' => $oAccount->OutLogin(), 'Password' => $oAccount->Password(), - 'VerifySsl' => $oAccount->Domain()->OutVerifySsl(!!$this->Config()->Get('labs', 'verify_ssl_certificates')), + 'VerifySsl' => $oAccount->Domain()->OutVerifySsl(!!$this->Config()->Get('ssl', 'verify_certificate')), 'HiddenRcpt' => array() ); @@ -6661,7 +6661,7 @@ class Actions $this->MailClient() ->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())), $oAccount->Domain()->IncPort(), $oAccount->Domain()->IncSecure(), - $oAccount->Domain()->IncVerifySsl(!!$this->Config()->Get('labs', 'verify_ssl_certificates'))) + $oAccount->Domain()->IncVerifySsl(!!$this->Config()->Get('ssl', 'verify_certificate'))) ->Login($oAccount->IncLogin(), $oAccount->Password(), !!$this->Config()->Get('labs', 'use_imap_auth_plain')) ; } diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php index 81a425fe9..57aee7424 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Api.php @@ -89,6 +89,18 @@ class Api (int) \RainLoop\Api::Config()->Get('labs', 'imap_large_thread_limit', 100); \MailSo\Config::$SystemLogger = \RainLoop\Api::Logger(); + + $sSslCafile = $this->Config()->Get('ssl', 'cafile', ''); + if (!empty($sSslCafile)) + { + \MailSo\Hooks::Add('Net.NetClient.StreamContextSettings/Filter', function (&$aStreamContextSettings) use ($sSslCafile) { + if (isset($aStreamContextSettings['ssl']) && \is_array($aStreamContextSettings['ssl']) && + empty($aStreamContextSettings['ssl']['cafile'])) + { + $aStreamContextSettings['ssl']['cafile'] = $sSslCafile; + } + }); + } } } diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php index fdca65dac..6543878b8 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -113,6 +113,11 @@ class Application extends \RainLoop\Config\AbstractConfig 'core_install_access_domain' => array('') ), + 'ssl' => array( + 'verify_certificate' => array(false, 'Require verification of SSL certificate used.'), + 'cafile' => array('', 'Location of Certificate Authority file on local filesystem (/etc/ssl/certs/ca-certificates.crt)'), + ), + 'login' => array( 'default_domain' => array('', ''), @@ -249,7 +254,6 @@ Enables caching in the system'), 'imap_message_list_date_filter' => array(0), 'imap_large_thread_limit' => array(100), 'smtp_show_server_errors' => array(false), - 'verify_ssl_certificates' => array(false), 'curl_proxy' => array(''), 'curl_proxy_auth' => array(''), 'in_iframe' => array(false),