Comandos de OpenSSL

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.

  • comandos_ssl.txt
  • Última modificación: 2023/10/21 09:34
  • por ivan