Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2012, 04:42
mafersa
 
Fecha de Ingreso: septiembre-2012
Ubicación: Lugo
Mensajes: 31
Antigüedad: 11 años, 7 meses
Puntos: 0
firma digital pdf

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