bg-tutorials

Cum se generează CSR-ul pe Red Hat Linux

Acest ghid vă arată cum să generați un CSR (Certificate Signing Request) pe Red Hat Enterprise Linux folosind linia de comandă OpenSSL. Procesul produce două fișiere:

  • O cheie privată, care rămâne pe server și nu este niciodată partajată.
  • Un CSR, pe care îl trimiteți autorității de certificare (CA) atunci când comandați certificatul.

Acest ghid acoperă două abordări: o metodă cu o singură comandă pentru OpenSSL modern și o metodă cu fișier de configurare pentru versiunile mai vechi de OpenSSL care nu acceptă extensii inline. Ambele produc un CSR conform cu SAN, semnat cu SHA-256, ceea ce este cerut de CA-urile publice.

Înainte de a începe: verificați versiunea OpenSSL

OpenSSL este inclus implicit în fiecare versiune RHEL suportată. Confirmați că este prezent și verificați versiunea, pentru că versiunea decide ce metodă de mai jos puteți folosi:

openssl version

Ce este livrat cu fiecare versiune curentă Red Hat:

  • RHEL 10 (lansat în 2025, versiunea majoră curentă): OpenSSL 3.x
  • RHEL 9: OpenSSL 3.x
  • RHEL 8: OpenSSL 1.1.1
  • RHEL 7: OpenSSL 1.0.2 (RHEL 7 a atins finalul suportului de întreținere în 2024; migrați aceste sarcini de lucru pe o versiune suportată cât mai rapid posibil)

OpenSSL 1.1.1 și 3.x acceptă indicatorul de extensie inline folosit în metoda cu o singură comandă, astfel încât pe RHEL 8, 9 și 10 puteți folosi Opțiunea A de mai jos. Dacă openssl version raportează 1.0.2 sau mai vechi (RHEL 7), folosiți metoda cu fișier de configurare din Opțiunea B.

Dacă OpenSSL lipsește cumva, instalați-l cu managerul de pachete pentru versiunea dvs.:

# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl

Pe RHEL 8 și versiuni ulterioare, yum este un alias de compatibilitate pentru dnf, astfel încât ambele comenzi funcționează pe acele versiuni.

Opțiunea A: o singură comandă (OpenSSL 1.1.1 și 3.x)

Aceasta este calea cea mai rapidă pe RHEL 8, 9 și 10. Se generează întâi cheia privată, apoi se construiește CSR-ul cu Subject Alternative Names (SAN-uri) adăugate inline.

Pasul 1: Generați cheia privată

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

Aceasta creează o cheie privată RSA de 2048 de biți numită example.com.key în directorul curent. RSA de 2048 de biți este minimul acceptat de CA-urile publice; pentru o cheie modernă cu curbă eliptică în schimb, înlocuiți opțiunile de algoritm cu -algorithm EC -pkeyopt ec_paramgen_curve:P-256. Păstrați acest fișier privat: rămâne pe server și nu este niciodată trimis la CA.

Pasul 2: Creați CSR-ul cu SAN-uri

Rulați următoarea comandă, ajustând câmpurile subiectului și numele de domeniu pentru a se potrivi cu ale dvs.:

openssl req -new -sha256 -key example.com.key -out example.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

Înlocuiți example.com cu domeniul dvs. real pe tot parcursul și setați câmpurile subiectului cu detaliile dvs.:

  • C: codul de țară din două litere (de exemplu, US).
  • ST: numele complet al statului sau provinciei.
  • L: orașul sau localitatea.
  • O: numele legal al organizației (pentru un certificat DV cu un singur domeniu, acesta poate fi omis).
  • CN: numele de domeniu complet calificat principal, de exemplu www.example.com.

Enumerați fiecare nume de host pe care trebuie să îl acopere certificatul în valoarea subjectAltName. Browserele moderne validează în funcție de lista SAN, nu de numele comun (Common Name), așa că includeți fiecare nume acolo, inclusiv domeniul principal. Comanda scrie CSR-ul în example.com.csr.

Opțiunea B: metoda cu fișier de configurare (OpenSSL mai vechi)

Dacă openssl version raportează o versiune care nu acceptă indicatorul -addext (OpenSSL 1.0.2 și mai vechi, ca pe RHEL 7), definiți SAN-urile într-un mic fișier de configurare în schimb.

Pasul 1: Creați un fișier de configurare (san.cnf)

Creați un fișier numit san.cnf cu un editor de text și lipiți următorul conținut, editând valorile pentru domeniul și organizația dvs.:

[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext

[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com

Adăugați mai multe nume de host continuând numerotarea: DNS.3, DNS.4 și așa mai departe.

Pasul 2: Generați cheia și CSR-ul

Generați cheia privată:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

Apoi creați CSR-ul folosind fișierul de configurare:

openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf

Verificați CSR-ul

Înainte de a-l trimite, confirmați că CSR-ul conține detaliile corecte și o semnătură validă. Această comandă afișează subiectul, lista SAN, dimensiunea cheii și verifică autosemnătura cererii:

openssl req -noout -text -verify -in example.com.csr

Verificați că linia Subject și intrările X509v3 Subject Alternative Name enumeră fiecare domeniu pe care îl doriți, că cheia publică este cel puțin RSA de 2048 de biți (sau o cheie cu curbă eliptică P-256), și că algoritmul de semnătură este SHA-256. O linie care spune certificate request self-signature verify OK (versiunile mai vechi spun verify OK) înseamnă că CSR-ul și cheia privată se potrivesc. Dacă preferați un browser, lipiți CSR-ul în decodorul CSR online pentru a revizui aceleași detalii.

Trimiteți CSR-ul

Deschideți fișierul example.com.csr într-un editor de text și copiați întregul conținut, inclusiv liniile marker -----BEGIN CERTIFICATE REQUEST----- și -----END CERTIFICATE REQUEST----- (fiecare marker folosește cinci liniuțe pe fiecare parte). Lipiți întregul bloc în formularul de comandă atunci când solicitați certificatul de la furnizorul dvs. SSL.

Păstrați cheia privată, example.com.key, pe server. Nu o trimiteți la CA și nu o lipiți nicăieri: este partea secretă a perechii și nu trebuie să scape niciodată de sub controlul dvs. După ce CA validează CSR-ul și emite certificatul, urmați instrucțiunile noastre de instalare SSL pentru Red Hat Linux pentru a-l instala.

Întrebări frecvente

Unde este stocată cheia privată atunci când generez un CSR pe RHEL?

Cheia privată este scrisă în fișierul pe care îl numiți în opțiunea -out (de exemplu, example.com.key) în directorul în care ați rulat comanda. Este creată local și nu este niciodată inclusă în CSR. Faceți o copie de rezervă a acesteia într-un loc sigur și restricționați permisiunile, pentru că aveți nevoie de exact această cheie pentru a instala certificatul emis de CA.

Ar trebui să folosesc RSA sau ECDSA pentru cheie?

Ambele sunt acceptate. RSA de 2048 de biți este opțiunea implicită, larg compatibilă, și minimul permis de CA-urile publice. O cheie cu curbă eliptică (ECDSA P-256) este mai mică și mai rapidă, oferind în același timp o securitate echivalentă; generați una înlocuind opțiunile cheii cu -algorithm EC -pkeyopt ec_paramgen_curve:P-256. În ambele cazuri, CSR-ul trebuie semnat cu SHA-256, lucru pe care comenzile de mai sus îl fac deja.

Versiunea mea de OpenSSL nu acceptă -addext. Ce trebuie să fac?

Indicatorul -addext a fost adăugat în OpenSSL 1.1.1. Dacă aveți o versiune mai veche (OpenSSL 1.0.2 pe RHEL 7, de exemplu), folosiți metoda cu fișier de configurare din Opțiunea B, care definește Subject Alternative Names într-un fișier san.cnf în locul liniei de comandă.

Cum verific dacă CSR-ul meu este corect înainte de a comanda?

Rulați openssl req -noout -text -verify -in example.com.csr pe server. Aceasta afișează subiectul, lista SAN completă, tipul și dimensiunea cheii, și algoritmul de semnătură, și confirmă că CSR-ul se potrivește cu cheia privată a acestuia. Verificați aceste câmpuri înainte de a lipi CSR-ul în formularul de comandă.

Ce parte din CSR trebuie să lipesc în formularul de comandă?

Lipiți întregul bloc, de la -----BEGIN CERTIFICATE REQUEST----- până la -----END CERTIFICATE REQUEST----- inclusiv, fără a lăsa niciun caracter afară. Ambele linii marker folosesc cinci liniuțe pe fiecare parte. Nu lipiți cheia privată.

Funcționează la fel pe AlmaLinux, Rocky Linux și CentOS?

Da. AlmaLinux, Rocky Linux și CentOS Stream sunt compatibile binar cu versiunea RHEL corespunzătoare și includ același OpenSSL, astfel încât comenzile sunt identice. Avem, de asemenea, un tutorial dedicat despre cum să generați un CSR pe CentOS dacă aveți nevoie de el.

Economisește 10% la certificatele SSL în momentul plasării comenzii!

Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

A detailed image of a dragon in flight

Autor cu experiență, specializat în certificate SSL. Transformă subiectele complexe despre securitatea cibernetică în conținut clar și captivant. Contribuie la îmbunătățirea securității digite prin narațiuni cu impact.