Problemas para conectarse desde Curl a los webservices de AFIP
¡Buenas! Republico este post porque el post original lo borré accidentalmente queriéndolo editar con más info.
Para usuarios que no se puedan conectar desde CURL (PHP) a los webservices de AFIP/ARCA, por ejemplo a https://servicios1.afip.gov.ar/wsfev1/service.asmx
Eso puede ser debido a un problema con el handshake del certificado SSL del webservice. En AFIP/ARCA figura que se están migrando a TLS 1.2 pero no tiene un tiempo aproximado ni fecha: https://www.afip.gob.ar/ws/documentacion/cronograma-TLS.asp
Para solucionarlo provisoriamente, se puede agregar una sentencia a CURL para bajar el nivel de seguridad mínima en la conexión:
curl_setopt($curl,CURLOPT_SSL_CIPHER_LIST,'DEFAULT@SECLEVEL=1');
Se trendria que reemplazar $curl por el objeto que se está utilizando para instanciar Curl dentro del script php.
Ejemplo para testear la conexión:
<?php
$url = "https://servicios1.afip.gov.ar/wsfev1/service.asmx";
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_CIPHER_LIST => 'DEFAULT@SECLEVEL=1', // <- clave para conexión insegura
]);
$response = curl_exec($curl);
if ($response === false) {
echo "Error en cURL: " . curl_error($curl) . "\n";
} else {
echo "Respuesta:\n";
echo $response;
}
curl_close($curl);
Y de yapa, en el caso de usar AfipSDK:
Si se usa SoapClient de la librería afip.php publicada en https://github.com/AfipSDK/afip.php/issues/5
Hay que agregar en los SoapClient el cipher especifico:
'stream_context' => stream_context_create(['ssl' =>
[
'ciphers' => 'AES256-SHA',
'verify_peer' => false,
'verify_peer_name' => false
]
])
¡Espero que les sirva!
Iniciar sesión para dejar un comentario.
Comentarios
0 comentarios