instalar crear certificado php https certificate self-signed

php - crear - Permitir certificados autofirmados para el contenedor HTTPS



instalar certificado ssl apache ubuntu (2)

$contextOptions = array( ''ssl'' => array( ''verify_peer'' => true, ''allow_self_signed''=> true ) ); $sslContext = stream_context_create($contextOptions);

file_get_contents ("https: // ...., falso, $ sslContext);

lo anterior funciona bien

Básicamente tengo esto:

function request($url) { return file_get_contents($url, false, stream_context_create(array( "ssl" => array( "verify_peer" => true, "allow_self_signed" => false, ) ))); } request("https://[A]"); request("https://[B]");

Donde [A] es un URL en un servidor con un certificado "real" y [B] es algo en uno con solo un certificado autofirmado.

Con [A] funciona bien, con [B] obtengo esto:

file_get_contents(): Failed to enable crypto

Que es un mensaje de error bastante desafortunado que debería haber sido algo así como "error en la verificación del certificado del servidor", pero bien ...

Ahora pensé: "está bien, [B] es mi sistema de prueba, no me importa el certificado" y cambié el contexto a este:

"verify_peer" => false, "allow_self_signed" => true,

Ahora debería aceptar cualquier certificado de servidor, incluso mi auto firmado. Pero sigue siendo el mismo comportamiento: [A] funciona, [B] no. ¿Por qué?

Por cierto, sé que funciona bien con la extensión curl, pero quiero superar esto sin eso.


Esto funciona para mí Buena suerte.

$context = [ ''http'' => [ ''method'' => ''GET'' ], ''ssl'' => [ ''verify_peer'' => false, ''allow_self_signed''=> true ] ]; $context = stream_context_create($context); $resp = file_get_contents(''https://site/'', false, $context);