Algunos ejemplos de comandos de openSSL utilizados en varias actividades de la facturación electrónica.
openssl x509 -inform DER -outform PEM -in nombreArchivo.cer -pubkey -out nombreArchivo.pem
openssl x509 -inform DER -outform PEM -in nombreArchivo.cer -out nombreArchivo.pem
openssl x509 -outform der -in nombreArchivo.pem -out nombreArchivo.der
openssl pkcs8 -inform DER -in nombreLlave.key -passin pass:12345678a -out nombreLlave.pem
openssl rsa -in key.pem -des3 -out key.enc -passout pass:12345678a
openssl rsa -in nombredelArchivoEncriptado -out nombreNuevoArchivo.pem
posteriormente se le pedirá que ingrese la contraseña que utilizo para encriptar la llave.
openssl dgst -sha1 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt openssl enc -in sign.bin -a -A -out sello.txt
openssl dgst -sha256 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt openssl enc -in sign.bin -a -A -out sello.txt
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.
openssl x509 -inform DER -in eku9003173c9.cer -noout -enddate
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.
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
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 AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN\ ,name=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN COAHUILA Y NUEVO LEON AC,CN=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN\
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:
subject= /CN=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN /name=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN COAHUILA Y NUEVO LEON AC/O=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN /C=MX/x500UniqueIdentifier=AAD990814BP7 / HEGT7610034S2/serialNumber= / HEGT761003MDFRNN09
Si es un CSD la respuesta sera como la siguiente:
subject= /CN=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN /name=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN COAHUILA Y NUEVO LEON AC/O=ASOCIACION DE AGRICULTORES DEL DISTRITO DE RIEGO 004 DON MARTIN /x500UniqueIdentifier=AAD990814BP7 / HEGT7610034S2/serialNumber= / HEGT761003MDFRNN09/OU=Servidor
Como se puede observar el subject perteneciente a una FIEL no contiene el siguiente atributo OU=Servidor o OU=Matriz 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.