Ce face openssl
openssl are zeci de subcomenzi. Cele mai folosite: dgst calculează hash-uri (SHA-256, SHA-512), rand generează octeți aleatori (pentru parole sau secrete), req creează cereri de certificat și certificate autosemnate, x509 citește un certificat, iar s_client se conectează la un server TLS ca să vezi ce certificat prezintă.
Pentru verificarea fișierelor descărcate, sha256sum e mai comod; openssl devine util când lucrezi cu certificate: vezi când expiră, cine l-a emis și pentru ce nume este valabil.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
dgst -sha256 FIȘIER |
Calculează hash-ul SHA-256 al unui fișier (sau al intrării standard). |
rand -hex N / -base64 N |
Generează N octeți aleatori, afișați în hexazecimal sau Base64. |
req -x509 -newkey ... -nodes |
Creează o cheie nouă și un certificat autosemnat, fără parolă pe cheie. |
x509 -in CERT -noout -subject -issuer -dates |
Afișează titularul, emitentul și perioada de valabilitate a certificatului. |
x509 -checkend SECUNDE |
Verifică dacă certificatul expiră în următoarele SECUNDE (cod de ieșire 1 dacă da). |
s_client -connect GAZDA:443 -servername GAZDA |
Deschide o conexiune TLS și afișează certificatul primit de la server. |
Exemple
Exemplul 1: Hash SHA-256 pentru un text și un fișier
Același conținut dă mereu același hash; orice modificare, chiar de un caracter, îl schimbă complet.
printf 'Factura 2026: 450 lei\n' > factura.txt
openssl dgst -sha256 factura.txt
printf 'Ana are mere' | openssl dgst -sha256
Rezultat
SHA2-256(factura.txt)= fd14f5ad93389189bc1321b1b857a25fd4dfdeea18a3cd0f31eda9553fd211c8
SHA2-256(stdin)= 04c43a6d8236091578fcbebadfab4940a1f2387d3b21468f2eb6e0e01824089e
Exemplul 2: Certificat autosemnat pentru un server de test
Generăm o cheie EC și un certificat valabil 30 de zile pentru dexblog.test, apoi îl citim. Mesajele de progres ale lui req sunt trimise în /dev/null.
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes \
-keyout cheie.pem -out cert.pem -days 30 \
-subj "/C=RO/L=Iasi/O=Dexblog/CN=dexblog.test" 2>/dev/null
openssl x509 -in cert.pem -noout -subject -issuer
openssl x509 -in cert.pem -noout -checkend 86400
Rezultat
subject=C=RO, L=Iasi, O=Dexblog, CN=dexblog.test
issuer=C=RO, L=Iasi, O=Dexblog, CN=dexblog.test
Certificate will not expire
Exemplul 3: Când expiră certificatul unui site
s_client descarcă certificatul, iar x509 afișează emitentul și datele de valabilitate. < /dev/null închide conexiunea imediat.
openssl s_client -connect www.example.com:443 -servername www.example.com < /dev/null 2>/dev/null \
| openssl x509 -noout -issuer -dates
Ieșire în terminal
issuer=C=US, O=DigiCert Inc, CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1
notBefore=Jan 15 00:00:00 2026 GMT
notAfter=Jan 15 23:59:59 2027 GMT
Greșeli frecvente
- Folosirea
echoîn loc deprintfpentru hash-ul unui text:echoadaugă un rând nou, deci hash-ul nu mai corespunde cu cel calculat în alt program. - Omiterea lui
-servernamelas_client: pe serverele cu mai multe site-uri primești certificatul altui domeniu. - Folosirea MD5 sau SHA-1 pentru securitate (semnături, parole); ele sunt bune doar pentru detectarea coruperii accidentale.
Comenzi înrudite
sha256sum / md5sum: Calculează și verifică sume de control (SHA-256, MD5) ca să știi dacă un fișier este identic cu originalul.ssh-keygen: Generează perechi de chei SSH (privată și publică), le schimbă parola și le afișează amprenta.curl: Transferă date către sau de la un server folosind protocoale web (HTTP, HTTPS, FTP, REST API).