Per uno dei miei progetti utilizzando OpenCA, ho dovuto migrare da sha1 a sha2. In primo luogo dovrei trovare il supporto OpenSSL sottostante sha2? Qui condivido alcuni dei miei risultati e soluzioni. Openssl (versione 0.9.7h e successive) supporta sha256, ma per impostazione predefinita utilizza l'algoritmo sha1 per la firma. In questo tutorial vedremo come generare un certificato x509 digitale con l'algoritmo sha256 digest. "A proposito, ti ho detto che sha1 è già rotto!" Dai un'occhiata all'articolo sha1 rotto.
L'immagine sotto mostra il confronto delle funzioni SHA:
Prima di procedere oltre, scopri OpenSSL, un toolkit open source utilizzato per implementare i protocolli Secure Socket Layer (SSL) e Transport Layer Security (TLS) è installato? Il toolkit è caricato con tonnellate di funzionalità che possono essere eseguite utilizzando varie opzioni. Ulteriori informazioni sui 20 comandi OpenSSL più utili che ci aiuterebbe a comprendere ulteriormente la generazione del certificato autofirmato hash x509 sha256.
Prerequisiti: Devi avere OpenSSL installato per eseguire i comandi menzionati in questo tutorial. Se non ne hai uno, clicca qui per installarlo.
Passaggio 1:come trovare il supporto di openssl per sha256
Esegui il comando seguente per scoprire se la tua versione di openssl supporta sha256 digest :
#openssl dgst --help
Risultato di esempio :
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
Passaggio 2:come generare un certificato autofirmato hash x509 SHA256 utilizzando OpenSSL
sha256 fa parte di sha2 che consiste in altre funzioni hash come sha224, sha256, sha384, sha512 ecc., In cui sha256 e sha512 sono quelle popolari. Esegui il comando OpenSSL seguente per generare un certificato autofirmato con la funzione hash sha256. Questo certificato può essere utilizzato come certificato SSL per proteggere le transazioni del tuo dominio.
#openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout techglimpse.com.key -out techglimpse.com.crt
Leggi altro:come crittografare la tua password utilizzando l'algoritmo di hashing sha256 .
Passaggio 3:verifica della funzione hash sha256 nel certificato digitale x509 autofirmato
Ora il certificato è stato generato, è necessario verificare se il certificato è effettivamente utilizzato dalla funzione hash sha256 per la crittografia. Ecco il comando OpenSSL attraverso il quale puoi verificare:
#openssl x509 -noout -text -in techglimpse.com.crt
Questo comando elencherà tutte le informazioni sul certificato digitale come validità, algoritmo di firma, lunghezza della chiave pubblica ecc. Puoi anche verificare che il certificato SSL di un sito Web stia utilizzando la funzione hash SHA1 o SHA2 utilizzando i comandi OpenSSL
Risultato di esempio :
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
X509v3 Vincoli di base:
CA:TRUE
Algoritmo di 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
Guarda il video qui sotto:
Leggi anche:comandi OpenSSL che devi conoscere.
Divertiti! In caso di problemi, non esitare a pubblicare un commento e farò del mio meglio per rispondere!