Hola todos,
Estamos intentando configurar los datos de conexión de rest para que use certificados ssl.
Hemos seguido la documentación de la wiki (http://toba.siu.edu.ar/trac/toba/wiki/Referencia/Rest), pero no nos funciona.
Hemos habilitado el módulo ssl en apache, y agregado las siguientes líneas en el virtalhost
SSLVerifyClient require
SSLOptions +StdEnvVars +ExportCertData
Los certificados estamos casi seguros que funcionan puesto que hemos verificado que son válidos empleando este comando:
openssl verify -purpose sslserver -CAfile ca.crt cliente.crt
Les paso cómo hemos configurado el cliente.ini:
[conexion]
to = "http://tarjetau.unpa.edu.ar/hub_servicios/1.0/rest/"
auth_tipo = "ssl"
cert_file = "/home/roberto/certificados/CA/certificados/cliente.crt"
key_file = "/home/roberto/certificados/CA/privado/cliente.key"
ca_cert= "/home/roberto/certificados/CA/certificados/ca.crt"
El archivo servidor.ini
autenticacion = ssl
El archivo servidor_usuarios.ini
[admin]
fingerprint = 5bdb46940f1a50e5db7b259ac536f4fb8864e803
La fingerprint la calculamos ejecutando este código:
$certUtils = new SSLCertUtils();
$certUtils->loadCertFromFile("/home/roberto/certificados/CA/certificados/cliente.crt");
echo $certUtils->getFingerprint();
En el archivo sistema.log del servidor de ws nos muestra el siguiente error:
[DEBUG][hub_servicios] SIUToba\rest\http\respuesta_rest::__set_state(array(
'status' => 401,
'headers' =>
array (
'Content-Type' => 'application/json',
'API-Version' => '1.0.0',
),
'data' =>
array (
'mensaje' => 'autenticación cancelada, falta información',
),
'encoding' => 'latin1',
'api_version' => '1.0.0',
))
En apache
PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\ClientException' with message 'Client error response [url] http://tarjetau.unpa.edu.ar/hub_servicios/1.0/rest/mapuche/agentes/29058990 [status code] 401 [reason phrase] Unauthorized' in /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:89
Stack trace:
#0 /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/Subscriber/HttpError.php(33): GuzzleHttp\Exception\RequestException::create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response))
#1 /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/Event/Emitter.php(109): GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), 'complete')
#2 /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/RequestFsm.php(203): GuzzleHttp\Event\Emitter->emit('complete', Object(GuzzleHttp\Event\CompleteEvent))
#3 /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/RequestFsm.php(92): GuzzleHttp\RequestFsm->complete(Object(GuzzleHttp\Transaction))
#4 /home/ro in /home/roberto/toba_2.7.2/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php on line 89
Les adjunto los certificados por si quieren probarlos.
Saludos
certificados.zip (5.2 KB)