Hola.
Estoy intentando usar un script para firmar digitalmente pdfs:
De momento lo más fácil me parecía usar tcpdf utlizando el ejemplo:
http://www.tcpdf.org/examples/example_052.phps
donde usa
$certificate = 'file://../tcpdf.crt';
para localizar el certificado de ejemplo que va con la librería tcpdf
y para firmar
// set document signature
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);
donde según el muy buen tutorial
http://www.rinconastur.com/php/php95.php
el método se describe como
$objeto->setSignature( certificado, clave_privada, contraseña, extras, tipo, informacion)
Lo curioso es que si uso el ejemplo en mi hosting como se puede ver en:
http://www.recetaveterinaria.com/lib/pdf/tcpdf/examples/example_052.php
funciona perfectamente
pero cuando quiero usar mi propio certificado de la fnmt (fábrica nacional de moneda y timbre) y coloco en el mismo directorio el archivo .cer (clave pública) y el .p12(clave privada) no consigo firmar como se ve en
http://www.recetaveterinaria.com/lib/pdf/tcpdf/examples/example_0522.php
siendo que están en el mismo directorio que los certificados de ejemplo y esos sí los reconoce. La clave privada la genero exportando el certificado desde el navegador firefox (la contraseña de la clave privada la genero en ese momento).
Por otro lado en el ejemplo original me fijo que pone como parámetros del método setsignature $certificate que corresponde con el certificado clave pública pero no usa la clave privada.
Estoy con esa sensación de que casi lo tengo pero no lo consigo.
A alguien le ha pasado algo similar?, quizás es un problema con el certificado del fnmt?.
También he probado a implanta el ejemplo de
http://www.rinconastur.com/php/ver.php?URL=ejemplo354.php
pero no lo consigo.
Gracias por la atención y si alguien sabe de alguna otra forma de firmar digitalmente con php podemos compartirlo.
Saludos