Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
¿Qué certificado espera el servicio rest?

Yo no encuentro el modo en que me admita el certificado de la extensión c12.

Si envío el archivo así: curl_setopt($ch, CURLOPT_CAINFO, $file); Error 01
Si quito o añado la contraseña así curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pass); Error 01
Si meto el certificado en una variable y lo envío con CURLOPT_CAINFO; Error 01
Si lo limpio de retornos de carro y cualquier otra cosa; Error 01
Si lo convierto a pem y lo mando como una variable así curl_setopt($ch, CURLOPT_SSLCERT, $certi_pem); no responde nada, nada en absoluto.

Por supuesto he probado también a quitar y poner la clave, quitar y poner la llave privada, indicar el tipo de certificado...

¿Alguien podría decirme qué espera el servidor? Porque cuando lo hago por archivo no lo reconoce y cuando lo hago como variable en formato pem no responde.

Muchas gracias por vuestra ayuda
Responder Con Cita
  #2  
Antiguo 29-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Yo no encuentro el modo en que me admita el certificado de la extensión c12.
¿Has probado lo que te puse en este post?:

https://www.clubdelphi.com/foros/sho...postcount=3579

Un saludo.
Responder Con Cita
  #3  
Antiguo 29-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Por supuesto y no soy capaz.
¿Qué metes en $appConfig["certificate"]?
Responder Con Cita
  #4  
Antiguo 29-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Por supuesto y no soy capaz.
¿Qué metes en $appConfig["certificate"]?
Ah ok, es que te veía insistiendo en lo de CURL, por si acaso...

En esa variable tengo la ruta al fichero PEM:

$appConfig = $_SERVER["DOCUMENT_ROOT"]."/certs/XXXXX.pem";
Responder Con Cita
  #5  
Antiguo 30-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
El servidor de Guipuzkua no responde nada

Pues a mí el servidor de Guipuzkua sigue sin responderme nada. Absolutamente nada.

Estoy haciéndolo tal como se me ha dicho y verificando con la documentación de PHP.
- En "local_cert" meto "CERTIFICADO.p12" (están en el mismo directorio que los otros archivos).
- En "passphrase" la clave para ese mismo certificado.
- En "cafile" nuevamente el certificado.
- En "capath" la ruta absoluta al directorio donde está el certificado

Lo demás no lo he tocado salvo el apartado "content" donde meto el XML.

He comprobado que se genere el vector correctamente.

hago el $context = stream_context_create($opts);

y por último $haciendaResult = file_get_contents('https://tbai-z.prep.gipuzkoa.eus/sarrerak/alta', false, $context);

Lo que obtengo cuando hago var_dump($haciendaResult); es "bool(false)"

Como ya llevo tiempo peleando con esto, he convertido la clave privada del c12 a pem, pero cuando la mando en lugar del certificado el mismo resultado. Se supone que algo tendría que responder.

Según me han contestado en Diputación los certificados PFX son igualmente válidos que los pem. ¿he comprendido mal y la respuesta del servidor no está en "$haciendaResult"?

Muchas gracias por vuestra ayuda.

Por si acaso mi código:

$opts = array(
"ssl" => array(
"local_cert" => $file,
"passphrase" => $pass,
"allow_self_signed" => true,
"cafile" => $file,
"capath" => $camino,
"verify_peer" => false
),
"http" => array (
"method" => "POST",
"ignore_errors" => true,
"timeout" => 9,
"header" => "Accept-language: es\r\n"."Content-type: application/xml;charset=UTF-8\r\n",
"content" => $texto
)
);
var_dump($opts);

$context = stream_context_create($opts);
var_dump($context);

$haciendaResult = file_get_contents('https://tbai-z.prep.gipuzkoa.eus/sarrerak/alta', false, $context);
var_dump($haciendaResult);

echo "\n La Dipiutación respondió: ".$haciendaResult;
Responder Con Cita
  #6  
Antiguo 30-11-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 3
Irreo Va por buen camino
Cita:
Empezado por Zósimo Ver Mensaje
Pues a mí el servidor de Guipuzkua sigue sin responderme nada. Absolutamente nada.

Estoy haciéndolo tal como se me ha dicho y verificando con la documentación de PHP.
Buenas,

Ánimo, yo creo que estás cerca.

Para el envío yo estoy usando certificados en formato PEM. En su día recuerdo que con ese código me estuve peleando bastante, hasta que di con la combinación de parámetros y valores correcta.

Por si te sirve, te paso las instrucciones que usé en el servidor para convertir el certificado a PEM desde la consola SSH:

(te irá pidiendo contraseña actual del certificado, o la nueva que quieres poner, según el caso)

openssl pkcs12 -in TITXXXX.pfx -out TIT.nokey.pem -nokeys
openssl pkcs12 -in TITXXXX.pfx -out TIT.withkey.key
openssl rsa -in TIT.withkey.key -out TIT.key
cat TIT.nokey.pem TIT.key > TITXXXX.pem

Al final el fichero que uso es el último fusionado usando "cat" (TITXXXX.pem)

Suerte!
Responder Con Cita
  #7  
Antiguo 30-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Muchas gracias Irreo. Me hará falta la suerte.

Cita:
Empezado por Irreo Ver Mensaje
Buenas,

Ánimo, yo creo que estás cerca.

Para el envío yo estoy usando certificados en formato PEM. En su día recuerdo que con ese código me estuve peleando bastante, hasta que di con la combinación de parámetros y valores correcta.

Por si te sirve, te paso las instrucciones que usé en el servidor para convertir el certificado a PEM desde la consola SSH:

(te irá pidiendo contraseña actual del certificado, o la nueva que quieres poner, según el caso)

openssl pkcs12 -in TITXXXX.pfx -out TIT.nokey.pem -nokeys
openssl pkcs12 -in TITXXXX.pfx -out TIT.withkey.key
openssl rsa -in TIT.withkey.key -out TIT.key
cat TIT.nokey.pem TIT.key > TITXXXX.pem

Al final el fichero que uso es el último fusionado usando "cat" (TITXXXX.pem)

Suerte!
Responder Con Cita
  #8  
Antiguo 30-11-2022
Zósimo Zósimo is offline
Miembro
 
Registrado: nov 2022
Posts: 18
Poder: 0
Zósimo Va por buen camino
Funcionó

Gracias Irreo, al fin funcionó.

Era el certificado. No era cierto que aceptara los .c12

Te debo una.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3557 Hace 1 Semana 17:42:47
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 13:55:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi