Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed в функции SMTP->StartTLS() (строка 202 в файле /media/ams/www/sites/all/modules/smtp/smtp.transport.inc).
Комментарии
При переезде на php 7
на drupal 7.69
Или где ставить в каком файле
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$sw=file_get_contents(ЛИНК, false, stream_context_create($arrContextOptions));
Последнее дело так делать. Надо решать проблему с сертификатами, а не закрывать на неё глаза.
как решить этот вопрос Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed в функции SMTP->StartTLS() (строка 202 в файле /media/ams/www/sites/all/modules/smtp/smtp.transport.inc).
Вы точно проверили валидность и не просроченность сертификата именно на почтовом сервере (не сайте)? Там не самоподписанный какой-нибудь сертификат?
да на портале они действительны а по срокам там в самой папке апача смотрел они прям на несколько лет такое ощущение - что они от мозиллы какие то не правильные и их не переваривает drupal 7.69 и php 7.2 !
Что посоветуете?
Ещё раз. При чём тут апач? Проверять надо сертификат почтового сервера, с которым вы соединяетесь по smtp. Не веб сервера.
Возможно самоподпись --
Могу через фтп посмотреть!
Прошу не флудить сообщениями. Это всё таки не чат, а форум. Если вам есть, что добавить, то просьба редактировать свой предыдущий комментарий
А как проверить сертификат почтового сервера ? Где?
А как проверить сертификат почтового сервера ? Где? В каком файле друпала?
Эээ а при чем тут друпал? В друпале нет почтового сервера. Он у вас где-то установлен и прописан в настройках модуля smtp
Да есть такой модуль smtp! Где это в настройках этого модуля (проверить сертификат)?
Нигде. Модуль обращается к вашему почтовому серверу, который вы указали в настройках модуля smtp. Вот этот сервер вам и нужно проверить. Если вы не предоставите больше информации (хотя бы скриншот этих настроек) мы так и будем гадать на кофейной гуще
То есть такая ошибка возникает лишь из за не верной настройки в модуле smtp - почтового сервера?
В модуле smtp (и аналогичных) вы указываете действующий почтовый сервер. Это может быть сервер яндекса, гугла, майл.ру или ваш собственный. Если с почтовым сервером проблема, то РАЗУМЕЕТСЯ никакой модуль друпала не сможет отправлять письма через него. О чем вам и сообщил модуль сразу же: что у вашего почтового сервера есть проблема с сертификатом.
Вы на вопрос-то ответите? Через какой почтовый сервер вы пытаетесь отправлять почту?
Я не смотрел настройки- то есть модуль сообщил что у сервера на который я настроил отправкуимеет проблемы с сертификатом?
Да.
Пишет по инету где где то цепочка сертификатов не актуальна
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed в функции SMTP->StartTLS() (строка 202 в файле /media/ams/www/sites/all/modules/smtp/smtp.transport.inc).
в каких папках искать не актуальные сеертификаты?
Это одна из возможностей, совсем не самая вероятная, и если у вас оно, то поможет только техподдержка вашего хостинга. Но вероятнее, проблема всё же в почтовике.
Или вообще нубудь добавить в строки где эту проверку пытается пройти
public function StartTLS() {
$this->error = NULL; # to avoid confusion
if (!$this->connected()) {
$this->error = array("error" => "Called StartTLS() without being connected");
return FALSE;
}
fputs($this->smtp_conn, "STARTTLS" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply, 0, 3);
if ($this->do_debug >= 2) {
drupal_set_message(t("SMTP -> FROM SERVER: @rply", array("@rply" => $rply)));
}
if ($code != 220) {
$this->error =
array("error" => "STARTTLS not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
drupal_set_message(t("SMTP -> ERROR: @Error: @rply", array("@Error" => $this->error["error"], "@rply" => $rply)));
}
return FALSE;
}
// Begin encrypted connection
if (!stream_socket_enable_crypto($this->smtp_conn, TRUE, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
return FALSE;
}
return TRUE;
}
Где функция stream_socket_enable_crypto(
Данные почтового сервера все нормальные ! Я проверял полностью. Может все таки в строке где он пытается пройти проверку отключить проверку самого ssl
Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed в функции SMTP->StartTLS() (строка 202 в файле /media/ams/www/sites/all/modules/smtp/smtp.transport.inc).
То есть в самом файле smtp.transport.inc
Как проверяли сертификат почтового сервера?
Если отключать проверку, то может вообще ssl/tls не использовать, что толку-то, и хакать модуль не надо будет хотя бы?
На 202 строчке?
Кусок кода я присылал?
Сертификат почтового сервера отправил на проверку админисратора - они завтра сообщат результат а если при попытке восстановления забытого пароля (именно при этом процессе и регистрации возникает этот трабл) отключить проверку ssl/tls _ то как это сделать сообщите мне пожайлуста?
Если почтовый сервер допускает подключение без ssl/tls, то его и использовать. Не где-то в отдельных процессах, а вообще. Имелось в виду это.
Собственно, ошибка у вас возникать должна всегда, когда посылается письмо с сайта. То, что вы описываете, это просто частные случаи.
То есть как отключить не подскажите? Вообще этот StartTLS() ?
Узнать порт, на котором к почтовику можно подключиться без шифрования, указать его в настройках smtp, "использовать шифрование" установить "нет".