Не может быть очень полезным вопросом, но я не могу понять, что нет четкого ответа на эту проблему. Я только что понял через некоторые уже ответившие вопросы о проблемах с подключением imap_open()
, что при подключении к серверу SSL функция, скорее всего, вернет ошибку. Так что мне просто интересно, что проблема PHP в использовании SSL?Почему php не imap_open(), как SSL?
Используя эту строку подключения возвращает сообщение об ошибке:
function connect($host, $port, $login, $pass){
$this->server = $host;
$this->username = $login;
$this->link = imap_open("{". $host .":". $port."}INBOX", $login, $pass);
if($this->link) {
$this->status = 'Connected';
} else {
$this->error[] = imap_last_error();
$this->status = 'Not connected';
}
}
Хотя это один подключается без проблем:
function connect($host, $port, $login, $pass){
$this->server = $host;
$this->username = $login;
$this->link = imap_open("{". $host .":". $port."/imap/ssl/novalidate-cert}INBOX", $login, $pass);
if($this->link) {
$this->status = 'Connected';
} else {
$this->error[] = imap_last_error();
$this->status = 'Not connected';
}
}
Похоже, что большинство локальных корневых хранилищ сертификатов не настроено правильно (кажется, что PHP не поставляется с такой настройкой правильно), поэтому, когда он пытается проверить удаленный сертификат (необходимую часть безопасности), он может «т. Использование novalidate-cert оставляет вас открытым для атак. Кроме того, многие небольшие установки используют самоподписанные (недействительные) сертификаты. – Max