Sei sulla pagina 1di 3

11/22/2017 openssl [Centro de Integracion]

openssl

Comandos de OpenSSL
Algunos ejemplos de comandos de openSSL utilizados en varias actividades de la facturación electrónica.

Cualquier duda sobre el uso de este código por favor ver como conseguir soporte.

Convertir certificado en formato PEM


openssl x509 -inform DER -outform PEM -in nombreArchivo.cer -pubkey -out nombreArchivo.pem

Convertir certificado PEM a formato DER


openssl x509 -outform der -in nombreArchivo.pem -out nombreArchivo.der

Crear llave en formato PEM


openssl pkcs8 -inform DER -in nombreLlave.key -passin pass:12345678a -out nombreLlave.pem

Encriptar en DES3 la llave del certificado de sello digital


openssl rsa -in key.pem -des3 -out key.enc -passout pass:"Finkok Password"

Desencriptar la llave del paso anterior


openssl rsa -in nombredelArchivoEncriptado -out nombreNuevoArchivo.pem

posteriormente se le pedirá que ingrese la contraseña que utilizo para encriptar la llave.

Crear Sello digital CFDI 3.2


openssl dgst -sha1 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt
openssl enc -in sign.bin -a -A -out sello.txt

Crear Sello digital CFDI 3.3


openssl dgst -sha256 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt
openssl enc -in sign.bin -a -A -out sello.txt

Obtener Numero de serie del certificado


openssl x509 -inform DER -in C:\aad990814bp7_1210261233s.cer -noout -serial > "C:\numero.txt"

Aplicamos un ciclo para extraer solo las posiciones pares del resultado obtenido.

Ver ejemplo de implementación en PHP http://wiki.finkok.com/doku.php?id=php#obtener_numero_de_serie_del_certificado

Verificar que el certificado y la llave sean correctos


Para esto primero tienes que tener la llave y el certificado en formato PEM

openssl x509 -noout -modulus -in cer.pem


openssl rsa -noout -modulus -in key.pem

Si ambas cadenas son iguales significa que la llave pertenece a ese certificado.

http://wiki.finkok.com/doku.php?id=openssl 1/3
11/22/2017 openssl [Centro de Integracion]

Verificar el periodo de validez de un certificado


Para ejecutar este comando se debe de tener el certificado en formato PEM

openssl x509 -noout -in certificado.pem -dates

Al ejecuta ese comando se obtiene una respuesta como esta:

notBefore=Oct 26 19:22:43 2012 GMT


notAfter=Oct 26 19:22:43 2016 GMT

Mostrar RFC del propietario del certificado


Para ejecutar este comando se debe de tener el certificado en formato PEM

openssl x509 -in cert.pem -noout -subject -nameopt RFC2253

Al ejecuta ese comando se obtiene una respuesta como esta:

subject= OU=Servidor,serialNumber=\ / HEGT761003MDFRNN09,x500UniqueIdentifier=AAD990814BP7 / HEGT7610034S2,O=ASOCIACION DE A

Saber si el certificado pertenece a una FIEL o a un CSD


Para ejecutar este comando se realiza lo siguiente

openssl x509 -inform DER -in certificadoPublico.cer -subject -noout

Al ejecuta ese comando se obtiene una respuesta como esta en caso de ser FIEL:

RES DEL DISTRITO DE RIEGO 004 DON MARTIN /C=MX/x500UniqueIdentifier=AAD990814BP7 / HEGT7610034S2/serialNumber= / HEGT761003MDF

Si es un CSD la respuesta sera como la siguiente:

DISTRITO DE RIEGO 004 DON MARTIN /x500UniqueIdentifier=AAD990814BP7 / HEGT7610034S2/serialNumber= / HEGT761003MDFRNN09/OU=Se

Como se puede observar el subject perteneciente a una FIEL no contiene el siguiente atributo OU=Servidor al final de la cadena, en cambio el
perteneciente a un CSD si lo contiene, esta es la diferencia con la cual podemos saber si es un certificado de tipo FIEL o CSD.

 Comentarios
integracion, 2017/10/28 19:12 (2017-10-28T19:12:16Z)

b tardes,

lei que para la facturacion 3.3 el sello digital debe ser sha256, cómo puedo verificar, usando comandos ssl (o java), si el csd es sha1 o sha256?

Erika Duran, 2017/10/31 16:27 (2017-10-31T16:27:50Z)

Hola buen día estimado usuario,

El algoritmo SHA-256 en la versión 3.3 hace referencia a la generación del sello, es decir que se debe utilizar el SHA-256 en lugar del SHA-1.

Cualquier duda o comentario seguimos a sus ordenes.

Saludos.

integracion, 2017/07/18 12:56 (2017-07-18T12:56:06Z)

Se puede utilizar otras librerias para generar el sello como chilkat ?

http://wiki.finkok.com/doku.php?id=openssl 2/3
11/22/2017 openssl [Centro de Integracion]

René Rodíguez, 2017/08/18 17:58 (2017-08-18T17:58:35Z)

Estimado usuario,

Agradecemos de antemano, nos haya contactado. Respondiendo a su pregunta directamente, sí es posible utilizar algún otro tipo de librería o
método para sellar su comprobante, tal como lo menciona "Chilkat" le serviría, siempre y cuando le permita utilizar los algoritmos correspondientes
para cada versión de CFDI.

Seguimos a sus ordenes.


¡Saludos!

integracion, 2017/04/26 16:57 (2017-04-26T16:57:36Z)

en la creacion de sello digital 3.2 y 3.3:


LlavePrivada.pem es lo que mismo nombreLlave.pem?

René Rodíguez, 2017/04/28 13:51 (2017-04-28T13:51:18Z)

Estimado usuario,

Efectivamente ambos valores son la llave privada en formato PEM, procedimos a unificar los nombres para evitar alguna confusión.

Gracias por contactarnos.


¡Saludos!

Integracion, 2013/12/18 23:47 (2013-12-18T23:47:56Z)

El comando que viene en el correo del Kit de integracion viene el comando:


openssl rsa -in RFC.key -des3 -out RFC.enc.key -passout pass:"su contraseña"

Pero me marca error, no si si antes de encriptarlo tenga que quitar la contraseña que trae por default el archivo Key, seria bueno que pusieran como
hacer esta encriptacion.

Saludos.

David Cruz, 2014/02/07 11:12 (2014-02-07T11:12:53Z)

Ya agregamos el comando, para encriptar en des3 primero se debe convertir a PEM el archivo.key

 openssl.txt  Última modificación: 2017/05/05 17:14 por eduran

Excepto donde se indique lo contrario, el contenido de este wiki esta bajo la siguiente licencia: GNU Free Documentation License 1.3 (http://www.gnu.org/licenses/fdl-1.3.html)

http://wiki.finkok.com/doku.php?id=openssl 3/3

Potrebbero piacerti anche