Moved [labs.verify_ssl_certificates] setting to ssl section ([ssl.verify_certificate] = Off)

Added [ssl.cafile] = '' setting
This commit is contained in:
RainLoop Team 2014-10-10 18:26:46 +04:00
parent e1d3010054
commit 14e2f1705a
3 changed files with 22 additions and 6 deletions

View file

@ -1374,7 +1374,7 @@ class Actions
$this->MailClient() $this->MailClient()
->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())), ->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())),
$oAccount->Domain()->IncPort(), $oAccount->Domain()->IncSecure(), $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()) ->Login($oAccount->IncLogin(), $oAccount->Password())
; ;
} }
@ -2785,7 +2785,7 @@ class Actions
$iTime = \microtime(true); $iTime = \microtime(true);
$oImapClient->Connect($oDomain->IncHost($oDomain->Name()), $oDomain->IncPort(), $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; $iImapTime = \microtime(true) - $iTime;
$oImapClient->Disconnect(); $oImapClient->Disconnect();
@ -2813,7 +2813,7 @@ class Actions
$iTime = \microtime(true); $iTime = \microtime(true);
$oSmtpClient->Connect($oDomain->OutHost($oDomain->Name()), $oDomain->OutPort(), '127.0.0.1', $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; $iSmtpTime = \microtime(true) - $iTime;
$oSmtpClient->Disconnect(); $oSmtpClient->Disconnect();
@ -4684,7 +4684,7 @@ class Actions
'From' => empty($sFrom) ? $oAccount->Email() : $sFrom, 'From' => empty($sFrom) ? $oAccount->Email() : $sFrom,
'Login' => $oAccount->OutLogin(), 'Login' => $oAccount->OutLogin(),
'Password' => $oAccount->Password(), '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() 'HiddenRcpt' => array()
); );
@ -6661,7 +6661,7 @@ class Actions
$this->MailClient() $this->MailClient()
->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())), ->Connect($oAccount->Domain()->IncHost(\MailSo\Base\Utils::GetDomainFromEmail($oAccount->Email())),
$oAccount->Domain()->IncPort(), $oAccount->Domain()->IncSecure(), $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')) ->Login($oAccount->IncLogin(), $oAccount->Password(), !!$this->Config()->Get('labs', 'use_imap_auth_plain'))
; ;
} }

View file

@ -89,6 +89,18 @@ class Api
(int) \RainLoop\Api::Config()->Get('labs', 'imap_large_thread_limit', 100); (int) \RainLoop\Api::Config()->Get('labs', 'imap_large_thread_limit', 100);
\MailSo\Config::$SystemLogger = \RainLoop\Api::Logger(); \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;
}
});
}
} }
} }

View file

@ -113,6 +113,11 @@ class Application extends \RainLoop\Config\AbstractConfig
'core_install_access_domain' => array('') '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( 'login' => array(
'default_domain' => array('', ''), 'default_domain' => array('', ''),
@ -249,7 +254,6 @@ Enables caching in the system'),
'imap_message_list_date_filter' => array(0), 'imap_message_list_date_filter' => array(0),
'imap_large_thread_limit' => array(100), 'imap_large_thread_limit' => array(100),
'smtp_show_server_errors' => array(false), 'smtp_show_server_errors' => array(false),
'verify_ssl_certificates' => array(false),
'curl_proxy' => array(''), 'curl_proxy' => array(''),
'curl_proxy_auth' => array(''), 'curl_proxy_auth' => array(''),
'in_iframe' => array(false), 'in_iframe' => array(false),