Procesul de generare a certificatelor SSL/TLS este o sarcină comună pentru mulți administratori de sistem Linux. Din fericire, chiar dacă nu sunteți administrator, este ușor să faceți acest lucru folosind OpenSSL, un instrument open-source care este instalat implicit pe multe distribuții Linux. Aici explicăm ce este OpenSSL, cum să-l instalezi și, cel mai important, cum să-l folosești pentru a genera certificate SSL și TLS pe sistemul tău.
Ce este OpenSSL?
OpenSSL este o bibliotecă dezvoltată de Proiectul OpenSSL pentru a oferi implementări SSL și TLS open-source pentru criptarea traficului de rețea. Este ușor disponibil pentru o varietate de distribuții bazate pe Unix și poate fi folosit pentru a genera certificate, chei private RSA și pentru a efectua sarcini generale legate de criptare.
Limitarea certificatului SSL autosemnat
Când utilizați OpenSSL pentru a genera un certificat SSL, acesta este considerat „autosemnat”. Înseamnă că certificatul SSL este semnat cu propria sa cheie privată și nu de la o Autoritate de Certificare (CA).
Ca atare, certificatul SSL nu poate fi „de încredere” și nu ar trebui utilizat pentru niciun site public. Dacă este folosit, utilizatorii vor vedea probabil avertismente din browserele lor despre certificat.
Un certificat autosemnat este util pentru dezvoltarea locală sau pentru orice aplicație care rulează în fundal și care nu se confruntă cu Internetul.
Alternativ, puteți utiliza LetsEncrypt sau puteți obține un certificat verificat de o autoritate de încredere, cum ar fi Comodo CA.
Instalare
Majoritatea distribuțiilor Linux au deja o versiune de OpenSSL încorporată în mod implicit. Dacă nu, îl puteți instala cu ușurință.
Îl puteți instala pe Ubuntu și Debian folosind apt
comanda:
sudo apt install openssl
Pe CentOS (sau alternativa sa), îl puteți instala utilizând yum
comanda:
sudo yum install openssl
De asemenea, îl puteți descărca cu ușurință de pe site-ul său ca fișier „.tar.gz”.
Utilizare de bază
Acum că ați instalat OpenSSL, putem arunca o privire la unele dintre funcțiile de bază oferite de program.
Puteți începe prin a vizualiza versiunea și alte informații relevante despre instalarea dvs. OpenSSL:
openssl version -a

Puteți consulta manualul furnizat:
openssl help

Generarea unui certificat folosind un fișier de configurare
Generarea unui certificat folosind OpenSSL este posibilă în multe feluri. Una dintre ele este utilizarea unui fișier de configurare care va specifica detalii despre organizație.
Pentru a începe, puteți crea un fișier de configurare numit „config.conf” și îl puteți edita folosind Nano:
sudo nano example.conf
Iată un exemplu de conținut al fișierului de configurare:
[req] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext x509_extensions= v3_ca distinguished_name = dn [dn] C = US ST = California L = Los Angeles O = Org OU = Sales emailAddress = [email protected] CN = www.org.test.com [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always basicConstraints = CA:true [req_ext] subjectAltName = @alt_names [alt_names] DNS.1 = test.example.com
Puteți doar să copiați și să lipiți acest lucru în fișier și să faceți modificările necesare pentru a reflecta informațiile organizației dvs.

În continuare, trebuie să generați o cheie privată RSA, care va fi apoi folosită pentru a genera un certificat rădăcină -:
openssl genrsa -out example.key 2048
The -out
flag este folosit în acest caz pentru a specifica numele cheii care va fi generată. De asemenea, este specificată o dimensiune a cheii de 2048 de biți, care este valoarea implicită pentru cheile RSA.

De asemenea, va trebui să generați o Cerere de semnare a certificatului (CSR):
openssl req -new -key example.key -out example.csr -config example.conf
În acest caz, -key
flag este folosit pentru a specifica cheia RSA, the -out
flag specifică numele fișierului CSR și -config
flag este folosit pentru a specifica numele fișierului de configurare.
După aceasta, puteți genera un certificat rădăcină, care este folosit pentru a genera certificatul nostru final:
openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf
În procesul de generare a acestui certificat rădăcină, -sha256
flag este folosit pentru a specifica SHA256 ca rezumat al mesajului.
Acum, în ceea ce privește ultimul pas, putem în sfârșit să tastam următoarele pentru a genera certificatul nostru:
openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt
The -CA
flag specifică certificatul rădăcină, the -CAkey
flag specifică cheia privată și -extfile
specifică numele fișierului de configurare. Fișierul „final.crt” va fi certificatul SSL pe care îl doriți.

Generarea unui certificat fără un fișier de configurare
Alternativ, puteți genera și un certificat folosind OpenSSL fără un fișier de configurare.
Puteți începe prin a genera o cheie privată RSA:
openssl genrsa -out example.key 2048
În continuare, va trebui să generați un CSR:
openssl req -new -key example.key -out example.csr
Când generați un CSR, vi se va solicita să răspundeți la întrebări despre organizația dvs.

În cele din urmă, putem genera certificatul în sine:
openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt

Verificarea cheilor și certificatelor
Cheile și certificatele sunt ușor verificate și verificate folosind OpenSSL, cu -check
steag:
openssl rsa -check -in example.key

Puteți verifica cererile de semnare a certificatelor:
openssl req -text -noout -in example.csr
si certificate de asemenea:
openssl x509 -text -noout -in example.crt

întrebări frecvente
1. Mai trebuie să-mi fac griji pentru Heartbleed?
Heartbleed (CVE-2014-0160) este o vulnerabilitate veche găsită în OpenSSL în 2014. Ambele servere TLS și clienții care rulează OpenSSL au fost afectați. Un patch a fost lansat rapid la câteva zile după descoperirea sa, iar această vulnerabilitate nu este ceva de care să vă faceți griji în 2022, atâta timp cât rulați o versiune modernă și actualizată a OpenSSL.
Dacă utilizați OpenSSL pe sisteme bazate pe Debian și Ubuntu, îl puteți actualiza oricând rulând următoarele comenzi:
sudo apt update && sudo apt upgrade openssl
2. Cât timp durează certificatele SSL înainte de a expira?
Aceasta depinde de valoarea pe care o alegeți la generarea certificatului. Acest lucru poate fi specificat folosind -days
flag la generarea unui certificat.
Credit imagine: Sls scris pe bloc cub din lemn prin 123RF