Sé que he preguntado antes torpemente y sin investigar, pese a todo quisiera que alguien me dijera ¿con qué hay que certificar los envíos del XML ya firmado por XADES?
Me explico .
Tengo un c12 expedido por Izenpe hace unos meses. Si llamo al archivo del certificado no parece reconocerlo:
Código PHP:
curl_setopt($ch, CURLOPT_URL, $server);
curl_setopt($ch, CURLOPT_HTTPHEADER, $cabeceras);
curl_setopt($ch, CURLOPT_POSTFIELDS, $texto);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, "PFX");
curl_setopt($ch, CURLOPT_CAPATH, $camino);
curl_setopt($ch, CURLOPT_CAINFO, $file);
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, $pass);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Tampoco me ha funcionado si en lugar de llamar al certificado lo abro, extraigo solo el certificado como tal y lo envío como una variable, tampoco si lo limpio de cabeceras, retornos de carro y demás. Siempre me devuelve el error 01 de que el certificado no es válido o está caducado.
Lo he convertido a PEM como dicen en varios sitios, pero así lo que se mete en el nuevo archivo que yo he llamado cert.pem es la clave privada, sin embargo, otros dicen que eso les funciona. Yo lo envío con este otro código:
Código PHP:
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $cabeceras);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSLCERTTYPE, "PEM");
curl_setopt($ch, CURLOPT_SSLCERT,$camino.'cert.pem');
//curl_setopt($ch, CURLOPT_SSLKEY, $certs['pkey']);
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $pass);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_
Al parecer es el indicado para el formato pem según dice la documentación oficial de PHP. Aquí no responde nada el servidor de la Diputación, absolutamente nada.
Por puesto he preguntado a la diputación y no parecen saber nada.
¿Qué estoy haciendo mal? ¿Qué no he entendido? ¿debo limpiar el archivo pem que he creado de código como "-----BEGIN PRIVATE KEY-----" o "Bag Attributes"? ¿no lo debo hacer en mi ordenador sino directamente en el servidor por aquello del "localKeyID"?