Link Search Menu Expand Document

Firma electr贸nica

Aunque es posible exportar las facturas sin firmarlas, es un paso obligatorio para pr谩cticamente cualquier tr谩mite relacionado con la Administraci贸n P煤blica. Para firmar facturas se necesita un certificado electr贸nico (generalmente expedido por la FNMT) del que extraer su clave p煤blica y su clave privada.

Firmado con clave p煤blica y privada X.509

Si se tienen las clave p煤blica y privada en archivos independientes se debe utilizar este m茅todo con los siguientes argumentos:

$fac->sign("clave_publica.pem", "clave_privada.pem", "passphrase");

NOTA

Los siguientes comandos permiten extraer el certificado (clave p煤blica) y la clave privada de un archivo PFX:

openssl pkcs12 -in certificado_de_entrada.pfx -clcerts -nokeys -out clave_publica.pem
openssl pkcs12 -in certificado_de_entrada.pfx -nocerts -out clave_privada.pem

Firmado con PKCS#12

Desde la versi贸n 1.0.5 de Facturae-PHP ya es posible cargar un banco de certificados desde un archivo .pfx o .p12 sin necesidad de convertirlo previamente a X.509:

$fac->sign("certificado.pfx", null, "passphrase");

NOTA

Al utilizar un banco PKCS#12, Facturae-PHP incluir谩 la cadena completa de certificados en la factura al firmarla.

Aunque en la mayor铆a de los casos esto no supone ninguna diferencia con respecto a firmar desde ficheros PEM, el validador del Gobierno de Espa帽a presenta problemas para verificar firmas de certificados expedidos recientemente por la FNMT. Dicho problema se soluciona cuando se incluyen los certificados ra铆z e intermedios de la Entidad de Certificaci贸n, por lo que es recomendable usar este m茅todo de firma con Facturae-PHP.


Fecha de la firma

Por defecto, al firmar una factura se utilizan la fecha y hora actuales como sello de tiempo. Si se quiere indicar otro valor, se debe utilizar el siguiente m茅todo:

$fac->setSignTime("2017-01-01T12:34:56+02:00");

NOTA

Cambiar manualmente la fecha de la firma puede entrar en conflicto con el sellado de tiempo.


Table of contents