Para uno de mis proyectos usando OpenCA, tuve que migrar de sha1 a sha2. En primer lugar, ¿debería encontrar que OpenSSL subyacente es compatible con sha2? Aquí comparto algunos de mis hallazgos y soluciones. Openssl (versión 0.9.7h y posteriores) es compatible con sha256, pero de forma predeterminada utiliza el algoritmo sha1 para firmar. En este tutorial veremos cómo generar un certificado digital x509 con el algoritmo de resumen sha256. “¡Por cierto, te dije que sha1 ya está roto!” Echa un vistazo al artículo sha1 roto.
La siguiente imagen le ofrece la comparación de las funciones SHA:
Antes de continuar, descubra que está instalado OpenSSL, un conjunto de herramientas de código abierto que se utiliza para implementar los protocolos Secure Socket Layer (SSL) y Transport Layer Security (TLS). El kit de herramientas está cargado con toneladas de funcionalidades que se pueden realizar usando varias opciones. Más información sobre los 20 comandos OpenSSL más útiles lo que nos ayudaría a comprender mejor la generación del certificado autofirmado hash x509 sha256.
Requisitos previos: Debe tener instalado OpenSSL para ejecutar los comandos mencionados en este tutorial. Si no tiene uno, haga clic aquí para instalarlo.
Paso 1:Cómo encontrar soporte de openssl para sha256
Ejecute el siguiente comando para averiguar si su versión de openssl es compatible con el resumen sha256:
#openssl dgst --help
Salida de muestra:
Fri Feb 07>$openssl dgst --help unknown option '--help' options are -c to output the digest with separating colons -d to output debug info -hex output as hex dump -binary output in binary form -sign file sign digest using private key in file -verify file verify a signature using public key in file -prverify file verify a signature using private key in file -keyform arg key file format (PEM or ENGINE) -signature file signature to verify -binary output in binary form -engine e use engine e, possibly a hardware device. -md5 to use the md5 message digest algorithm (default) -md4 to use the md4 message digest algorithm -md2 to use the md2 message digest algorithm -sha1 to use the sha1 message digest algorithm -sha to use the sha message digest algorithm -sha224 to use the sha224 message digest algorithm -sha256 to use the sha256 message digest algorithm -sha384 to use the sha384 message digest algorithm -sha512 to use the sha512 message digest algorithm -ripemd160 to use the ripemd160 message digest algorithm
Paso 2:Cómo generar un certificado autofirmado hash x509 SHA256 usando OpenSSL
sha256 es parte de sha2 que consta de otras funciones hash como sha224, sha256, sha384, sha512, etc., en las que sha256 y sha512 son las más populares. Ejecute el siguiente comando OpenSSL para generar un certificado autofirmado con la función hash sha256. Este certificado se puede utilizar como certificado SSL para proteger las transacciones de su dominio.
#openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout techglimpse.com.key -out techglimpse.com.crt
Leer más:Cómo encriptar su contraseña usando el algoritmo hash sha256 .
Paso 3:Verificar la función hash sha256 en el certificado digital autofirmado x509
Ahora que se genera el certificado, debe verificar si el certificado realmente utiliza la función hash sha256 para el cifrado. Aquí está el comando OpenSSL a través del cual puede verificar:
#openssl x509 -noout -text -in techglimpse.com.crt
Este comando enumerará toda la información sobre el certificado digital, como la validez, el algoritmo de firma, la longitud de la clave pública, etc. También puede verificar que el certificado SSL de un sitio web esté usando la función hash SHA1 o SHA2 usando los comandos OpenSSL
Salida de muestra:
Certificate: Data: Version: 3 (0x2) Serial Number: f4:49:d3:ec:cc:9a:4e:01 Signature Algorithm: sha256WithRSAEncryption Issuer: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com Validity Not Before: Feb 7 07:09:30 2014 GMT Not After : Feb 7 07:09:30 2015 GMT Subject: C=IN, ST=KA, L=BANGALORE, O=CDAC, CN=Test.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c1:bc:2c:71:25:73:89:9f:4a:c6:a2:03:b5:3d: 02:8d:bb:99:12:67:f0:51:fd:a1:b7:a2:26:a0:73: 19:de:f8:b1:06:f2:d6:55:44:bb:a3:8d:ef:8e:b3: fa:18:a3:10:07:54:0a:be:a4:29:0d:62:fc:dc:e6: bb:3c:e8:6d:6d:2e:fa:0a:b3:7c:8a:ec:f8:c5:57: a6:51:02:3a:9b:9e:8a:66:0e:69:e5:ae:bc:c9:15: 05:e4:f0:14:b0:46:71:8a:b6:72:3c:9d:23:a0:e4: 1b:94:13:69:5a:5c:ab:dc:22:4a:54:93:01:2b:20: b7:b4:b2:a7:5f:76:5e:b8:85:41:19:a6:47:ff:cb: 35:45:59:b3:fe:7d:b8:ff:ac:4b:32:0f:68:ca:88: c4:8d:63:01:b3:01:94:32:79:e7:2f:e9:6e:21:d3: f2:28:ef:c3:2f:f7:e0:47:51:d1:61:0e:78:52:60: d5:bc:1d:98:98:54:0b:51:dd:28:f4:7a:a5:a0:cd: b3:1c:da:80:95:65:e7:32:91:df:61:de:cd:5c:d2: 74:e5:de:e1:24:3d:e7:29:23:d2:28:00:85:ce:d6: 11:1a:25:68:c7:f1:8f:dd:82:dc:01:43:a5:0b:c4: e7:90:f8:8e:f0:ab:37:ed:32:44:7c:89:4b:c0:a7: dc:7f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70 X509v3 Authority Key Identifier: keyid:EF:12:34:E0:D9:A8:82:C5:C0:E5:28:71:4A:EC:6B:CD:43:60:95:70 DirName:/C=IN/ST=KA/L=BANGALORE/O=CDAC/CN=Test.com serial:F4:49:D3:EC:CC:9A:4E:01
Restricciones básicas de X509v3:
CA:TRUE
Algoritmo de firma:sha256WithRSAEncryption
b2:d4:22:79:73:56:22:6e:3e:8c:4f:0d:44:ad:d9:a8:46:2b:
9c:4b:c1:ee:b3:ec:a5:58:95:15:49:9e:2a:88:6a:5f:79:31:
af:28:0d:21:da:50:d8:42:77:07:8c:b7:4c:ef:e6:7d:49:7f:
17:69:66:27:a3:ef:cb:a6:72:ef:eb:7c:95:29:3f:03:3c:f9:
74:2a:9e:66:88:2a:91:39:63:0b:9c:39:21:b1:83:3f:44:d3:
4b:c3:d7:d0:d9:bc:b0:8f:79:e1:66:29:03:52:5c:0c:af:a9:
0f:3b:4f:4d:ad:44:aa:be:6d:99:9b:9f:53:b5:89:e6:14:5b:
92:b1:ef:9b:39:9b:ba:e5:d3:f8:4a:c4:a7:74:43:59:7e:1a:
6a:2b:74:ef:10:85:0f:ec:65:2c:57:b8:5c:bc:36:a5:78:84:
2c:11:b1:e4:b5:3c:1d:b9:06:17:7e:d3:09:1c:58:af:de:1d:
3f:b4:1c:a8:1b:d5:53:34:e8:fd:bc:28:39:b7:05:5b:85:9b:
8e:e7:13:ac:52:83:20:93:25:b3:68:57:34:09:c0:89:2c:05:
25:e3:3c:11:6e:09:f9:90:d4:84:e0:ea:77:fc:fe:af:79:38:
f0:65:97:d2:77:fb:00:76:88:8e:df:e1:cc:30:33:dd:01:77:
e4:c2:c8:cc
Mira el siguiente video:
Lea también:Comandos de OpenSSL que debe conocer.
¡Disfrutar! Si tiene algún problema, no dude en publicar un comentario y haré todo lo posible para responderlo.