21 Exemple OpenSSL pentru a vă ajuta în lumea reală

Gestionarea Certificatelor SSL cu OpenSSL: Un Ghid Practic

OpenSSL este un instrument esențial pentru crearea, gestionarea și conversia certificatelor SSL, fiind una dintre cele mai populare comenzi în acest domeniu.

În diverse situații, te vei confrunta cu necesitatea de a utiliza OpenSSL în moduri diferite. Pentru a-ți ușura munca, am compilat o listă utilă de comenzi esențiale.

Acest articol explorează comenzile OpenSSL frecvent utilizate, oferindu-ți soluții practice pentru scenarii din lumea reală.

Mai jos sunt câteva abrevieri legate de certificate:

  • SSL – Stratul de Socketuri Securizate (Secure Socket Layer)
  • CSR – Cerere de Semnare a Certificatului (Certificate Signing Request)
  • TLS – Securitatea Stratului de Transport (Transport Layer Security)
  • PEM – Poștă Îmbunătățită pentru Confidențialitate (Privacy Enhanced Mail)
  • DER – Reguli de Codificare Distincte (Distinguished Encoding Rules)
  • SHA – Algoritmul de Hash Securizat (Secure Hash Algorithm)
  • PKCS – Standarde de Criptare cu Cheie Publică (Public-Key Cryptography Standards)

Notă: Pentru o înțelegere mai profundă a termenilor, un curs despre operațiunile SSL/TLS ar putea fi foarte benefic.

Generarea unei Chei Private și a unei Cereri de Semnare a Certificatului

openssl req -out tipstrick.ro.csr -newkey rsa:2048 -nodes -keyout tipstrick.ro.key

Această comandă va produce un fișier CSR și un fișier cheie RSA de 2048 de biți. Dacă intenționezi să folosești acest certificat în Apache sau Nginx, trebuie să trimiți fișierul CSR către autoritatea emitentă. Aceasta îți va oferi un certificat semnat, de obicei în format der sau pem, pe care îl vei configura apoi pe serverul tău web.

Crearea unui Certificat Autosemnat

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Comanda de mai sus generează un certificat autosemnat și o cheie RSA de 2048 de biți. Am inclus sha256, care este considerat cel mai sigur algoritm de hash în prezent.

Sfat: Implicit, un certificat autosemnat este valabil doar o lună. Pentru a extinde perioada de valabilitate, adaugă parametrul „–days”.

Exemplu: Crearea unui certificat autosemnat valabil doi ani:

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Verificarea unui Fișier CSR

openssl req -noout -text -in tipstrick.ro.csr

Verificarea fișierului CSR este esențială pentru a te asigura că acesta conține detaliile corecte înainte de a-l trimite autorității de certificare.

Crearea unei Chei Private RSA

openssl genrsa -out private.key 2048

Pentru a genera doar o cheie privată RSA, poți folosi comanda de mai sus. Am inclus 2048 pentru o criptare mai puternică.

Eliminarea Parolei din Cheie

openssl rsa -in certkey.key -out nopassphrase.key

Dacă folosești o parolă pentru fișierul cheie și utilizezi Apache, va trebui să introduci parola la fiecare pornire. Pentru a evita introducerea repetată a parolei, folosește această comandă pentru a elimina parola din cheie.

Verificarea Cheii Private

openssl rsa -in certkey.key –check

Dacă ai dubii în legătură cu fișierul cheie, folosește această comandă pentru a-l verifica.

Verificarea Fișierului Certificatului

openssl x509 -in certfile.pem -text –noout

Această comandă îți permite să verifici detaliile certificatului, cum ar fi CN, OU etc.

Verificarea Autorității Emitente a Certificatului

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Fiecare certificat este semnat de o autoritate de certificare. Această comandă îți permite să verifici autoritatea care a semnat un certificat.

Verificarea Valorii Hash a unui Certificat

openssl x509 -noout -hash -in bestflare.pem

Conversia Formatului DER în PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Autoritățile de certificare furnizează adesea certificatele SSL în format .der. Dacă ai nevoie de formatul .pem pentru Apache sau alte servicii, utilizează această comandă.

Conversia Formatului PEM în DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Pentru a converti un fișier din formatul .pem în formatul .der, folosește această comandă.

Conversia Certificatului și Cheii Private în Format PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Dacă ai nevoie de un certificat în format PKCS#12 pentru o aplicație Java sau alte sisteme care suportă doar acest format, folosește această comandă. Ea va genera un singur fișier pfx care include certificatul și cheia.

Sfat: Poți include și certificatul de lanț folosind opțiunea „-chain”, după cum urmează:

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Crearea unui CSR folosind o Cheie Privată Existentă

openssl req –out certificate.csr –key existing.key –new

Dacă nu vrei să generezi o nouă cheie privată și preferi să folosești una existentă, utilizează această comandă.

Verificarea Conținutului unui Certificat în Format PKCS12

openssl pkcs12 –info –nodes –in cert.p12

Formatul PKCS12 este binar, deci nu vei putea vizualiza conținutul în editorul de text. Această comandă te ajută să vezi conținutul fișierului PKCS12.

Conversia Formatului PKCS12 în Certificat PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Această comandă convertește un fișier în format pkcs12 în format pem, util pentru Apache sau alte servicii.

Testarea Certificatului SSL pentru o Adresă URL Specifică

openssl s_client -connect yoururl.com:443 –showcerts

Această comandă este foarte utilă pentru a valida detaliile certificatului SSL, inclusiv protocolul și cifrul folosit pentru o anumită adresă URL.

Aflarea Versiunii OpenSSL

openssl version

Pentru a te asigura că folosești o versiune sigură de OpenSSL, verificarea versiunii este primul pas important.

Verificarea Datei de Expirare a unui Certificat în Format PEM

openssl x509 -noout -in certificate.pem -dates

Această comandă este utilă pentru a monitoriza validitatea certificatelor, afișând datele „notBefore” și „notAfter”. Data „notAfter” indică momentul când certificatul expiră.

Exemplu:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Verificarea Datei de Expirare a Certificatului unei Adrese URL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Această comandă este utilă pentru a monitoriza de la distanță data de expirare a certificatelor SSL pentru anumite adrese URL.

Exemplu:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Verificarea Suportului pentru SSL V2 sau V3 pe o Adresă URL

Pentru a verifica SSL V2:

openssl s_client -connect secureurl.com:443 -ssl2

Pentru a verifica SSL V3:

openssl s_client -connect secureurl.com:443 –ssl3

Pentru a verifica TLS 1.0:

openssl s_client -connect secureurl.com:443 –tls1

Pentru a verifica TLS 1.1:

openssl s_client -connect secureurl.com:443 –tls1_1

Pentru a verifica TLS 1.2:

openssl s_client -connect secureurl.com:443 –tls1_2

Aceste comenzi sunt utile pentru a verifica dacă un server web acceptă protocoale SSL V2/V3. Dacă protocolul este activat, vei primi răspunsul „CONECTAT”, altfel „eșec de strângere de mână”.

Verificarea Suportului pentru un Cifru Specific pe o Adresă URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Această comandă este utilă pentru a verifica dacă un server web acceptă cifruri specifice, evidențiate în rapoartele de securitate. Înlocuiește cifrul și adresa URL cu valorile corespunzătoare. Dacă cifrul este suportat, vei primi „CONECTAT”, altfel „eșec de strângere de mână”.

Sper că această colecție de comenzi OpenSSL îți va fi utilă pentru gestionarea certificatelor SSL pentru site-ul tău.