Ver páginaRevisiones antiguasEnlaces a esta páginaExportar a PDFVolver arriba Esta página es de solo lectura. Puedes ver la fuente pero no puedes cambiarla. Pregunta a tu administrador si crees que esto es incorrecto. ====== Comandos de OpenSSL ====== Algunos ejemplos de comandos de openSSL utilizados en varias actividades de la facturación electrónica. ==== Convertir certificado en formato PEM ==== <code console> openssl x509 -inform DER -outform PEM -in nombreArchivo.cer -pubkey -out nombreArchivo.pem </code> ==== Convertir certificado en formato PEM sin la llave publica==== <code console> openssl x509 -inform DER -outform PEM -in nombreArchivo.cer -out nombreArchivo.pem </code> ==== Convertir certificado PEM a formato DER ==== <code console> openssl x509 -outform der -in nombreArchivo.pem -out nombreArchivo.der </code> ==== Crear llave en formato PEM ==== <code console> openssl pkcs8 -inform DER -in nombreLlave.key -passin pass:12345678a -out nombreLlave.pem </code> ---- ==== Encriptar en DES3 la llave del certificado de sello digital ==== <code console> openssl rsa -in key.pem -des3 -out key.enc -passout pass:12345678a </code> ==== Desencriptar la llave del paso anterior==== <code console> openssl rsa -in nombredelArchivoEncriptado -out nombreNuevoArchivo.pem </code> posteriormente se le pedirá que ingrese la contraseña que utilizo para encriptar la llave. ---- ==== Crear Sello digital CFDI 3.2 ==== <code console> openssl dgst -sha1 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt openssl enc -in sign.bin -a -A -out sello.txt </code> ---- ==== Crear Sello digital CFDI 3.3 ==== <code console> openssl dgst -sha256 -out sign.bin -sign nombreLlave.pem cadenaoriginal.txt openssl enc -in sign.bin -a -A -out sello.txt </code> ==== Obtener Numero de serie del certificado ==== <code console> openssl x509 -inform DER -in C:\aad990814bp7_1210261233s.cer -noout -serial > "C:\numero.txt" </code> Aplicamos un ciclo para extraer solo las posiciones pares del resultado obtenido. ==== Obtener fecha de expiracion ==== <code bash> openssl x509 -inform DER -in eku9003173c9.cer -noout -enddate </code> ==== Verificar que el certificado y la llave sean pares correctos ==== Para esto primero tienes que tener la llave y el certificado en formato PEM <code console> openssl x509 -noout -modulus -in cer.pem openssl rsa -noout -modulus -in key.pem </code> Si ambas cadenas son iguales significa que la llave pertenece a ese certificado. ---- ==== Verificar el periodo de validez de un certificado ==== Para ejecutar este comando se debe de tener el certificado en formato PEM <code console> openssl x509 -noout -in certificado.pem -dates </code> Al ejecuta ese comando se obtiene una respuesta como esta: <code console> notBefore=Oct 26 19:22:43 2012 GMT notAfter=Oct 26 19:22:43 2016 GMT </code> ---- ==== Mostrar RFC del propietario del certificado ==== Para ejecutar este comando se debe de tener el certificado en formato PEM <code console> openssl x509 -in cert.pem -noout -subject -nameopt RFC2253 </code> Al ejecuta ese comando se obtiene una respuesta como esta: <code console> 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\ </code> ---- ==== Saber si el certificado pertenece a una FIEL o a un CSD ==== Para ejecutar este comando se realiza lo siguiente <code console> openssl x509 -inform DER -in certificadoPublico.cer -subject -noout </code> Al ejecuta ese comando se obtiene una respuesta como esta en caso de ser FIEL: <code console> 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 </code> Si es un CSD la respuesta sera como la siguiente: <code console> 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 </code> 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:34por ivan