with stream_socket_enable_crypto stream_socket_client ssl3_get_server_certificate failed error code 1416f086 laravel-4 amazon-ec2 ssl-certificate apache2.4 php-5.6

laravel 4 - stream_socket_client - cómo arreglar stream_socket_enable_crypto(): la operación SSL falló con el código 1



stream_socket_enable_crypto(): ssl operation failed with code 1 openssl error messages:/ n (6)

Intenta cambiar la app/config/email.php

smtp al mail

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Estoy usando Laravel 4.2, PHP 5.6, Apache 2.4

Tengo GoDaddy SSL instalado en Amazon ec2 Linux.

SSL funciona bien cuando visito el sitio con https.

El error ocurrió cuando llamé a mi función:

<?php public function sendEmail() { /Mail::send ( ''emails.code.code'', $data, function ($sendemail) use($email) { $sendemail->from ( ''[email protected]'', ''Me Team'' ); $sendemail->to ( $email, '''' )->subject ( ''Activate your account'' ); } ); } ?>

Leí algunos artículos sobre esto, dijeron que hay cosas que deberíamos hacer algunos cambios, pusieron ese código pero no sé dónde insertarlo.

He estado leyendo esto: https://www.mimar.rs/en/sysadmin/2015/php-5-6-x-ssltls-peer-certificates-and-hostnames-verified-by-default/

y esta documentación de php http://php.net/manual/en/migration56.openssl.php que es difícil de entender.

¿Entonces mi pregunta es cómo resolver este problema?


También tengo este error en laravel 4.2 lo resolví de esta manera. Descubra StreamBuffer.php . Para mí utilizo xampp y el nombre de mi proyecto es itis_db porque mi ruta es así. Intenta encontrar de acuerdo a tu

C: / xampp / htdocs / itis_db / ​​vendor / swiftmailer / swiftmailer / lib / classes / Swift / Transport / StreamBuffer.php

y descubra esta función dentro de StreamBuffer.php

private function _establishSocketConnection()

y pega estas dos líneas dentro de esta función

$options[''ssl''][''verify_peer''] = FALSE; $options[''ssl''][''verify_peer_name''] = FALSE;

y recarga tu navegador e intenta ejecutar tu proyecto nuevamente. Para mí, me pongo así:

private function _establishSocketConnection() { $host = $this->_params[''host'']; if (!empty($this->_params[''protocol''])) { $host = $this->_params[''protocol''].''://''.$host; } $timeout = 15; if (!empty($this->_params[''timeout''])) { $timeout = $this->_params[''timeout'']; } $options = array(); if (!empty($this->_params[''sourceIp''])) { $options[''socket''][''bindto''] = $this->_params[''sourceIp''].'':0''; } $options[''ssl''][''verify_peer''] = FALSE; $options[''ssl''][''verify_peer_name''] = FALSE; $this->_stream = @stream_socket_client($host.'':''.$this->_params[''port''], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, stream_context_create($options)); if (false === $this->_stream) { throw new Swift_TransportException( ''Connection could not be established with host ''.$this->_params[''host'']. '' [''.$errstr.'' #''.$errno.'']'' ); } if (!empty($this->_params[''blocking''])) { stream_set_blocking($this->_stream, 1); } else { stream_set_blocking($this->_stream, 0); } stream_set_timeout($this->_stream, $timeout); $this->_in = &$this->_stream; $this->_out = &$this->_stream; }

Espero que resuelvas este problema .....


Una solución fácil para esto podría ser la edición de config / mail.php y la desactivación de TLS

''encryption'' => env(''MAIL_ENCRYPTION'', ''''), //''tls''),

Básicamente al hacer esto

$options[''ssl''][''verify_peer''] = FALSE; $options[''ssl''][''verify_peer_name''] = FALSE;

También debe perder seguridad, pero en la primera opción no hay necesidad de sumergirse en el código del vendedor.


Leyendo app / config / mailphp

Supported : "smtp", "mail", "sendmail"

Dependiendo de las utilidades de correo instaladas en su máquina, complete el valor de la clave del controlador. yo lo haría

''driver'' => ''sendmail'',


Configure los parámetros con el transporte ...

$mailer = /Swift_Mailer::newInstance( /Swift_SmtpTransport::newInstance() ->setHost(/Yii::$app->params[''servers''][4][''host'']) ->setPort(/Yii::$app->params[''servers''][4][''port'']) ->setEncryption(/Yii::$app->params[''servers''][4][''encr'']) ->setStreamOptions(array(''ssl'' => array(''allow_self_signed'' => true, ''verify_peer'' => false, ''verify_peer_name'' => false))) ->setUsername(/Yii::$app->params[''servers''][4][''user'']) ->setPassword(/Yii::$app->params[''servers''][4][''pass'']) );


Debe agregar el código siguiente en /config/mail.php (trabajado en laravel 5.4)

''stream'' => [ ''ssl'' => [ ''allow_self_signed'' => true, ''verify_peer'' => false, ''verify_peer_name'' => false, ], ],