Provided by: manpages-ro_4.27.0-1_all bug

NUME

       config - fișiere de configurare ale bibliotecii OpenSSL CONF

DESCRIERE

       Această pagină documentează sintaxa fișierelor de configurare OpenSSL, așa cum sunt analizate de
       NCONF_load(3) și funcțiile conexe. Acest format este utilizat de multe dintre comenzile OpenSSL și pentru
       a inițializa bibliotecile atunci când sunt utilizate de orice aplicație.

       Prima parte descrie sintaxa generală a fișierelor de configurare, iar secțiunile următoare descriu
       semantica modulelor individuale. Alte module sunt descrise în fips_config(5) și x509v3_config(5). Sintaxa
       pentru definirea valorilor ASN.1 este descrisă în ASN1_generate_nconf(3).

SINTAXĂ

       Un fișier de configurare este o serie de linii  Liniile goale și spațiul alb dintre elementele unei linii
       nu au nicio semnificație. Un comentariu începe cu un caracter #; restul liniei este ignorat. Dacă # este
       primul caracter fără spațiu dintr-o linie, întreaga linie este ignorată.

   Directive
       Două directive pot fi utilizate pentru a controla analizarea fișierelor de configurare: .include și
       .pragma.

       Pentru compatibilitate cu versiunile mai vechi ale OpenSSL, un semn egal după directivă va fi ignorat.
       Versiunile mai vechi îl vor trata ca pe o atribuire, deci trebuie să aveți grijă dacă diferența de
       semantică este importantă.

       Un fișier poate include alte fișiere folosind sintaxa include:

         .include [=] nume-rută

       Dacă nume-rută este un simplu nume de fișier, fișierul respectiv este inclus direct în acel punct.
       Fișierele incluse pot avea instrucțiuni .include care specifică alte fișiere. Dacă nume-rută este un
       director, toate fișierele din directorul respectiv care au extensia „.cnf” sau „.conf” vor fi incluse;
       (acest lucru este disponibil numai pe sistemele cu suport POSIX IO). Orice subdirectoare găsite în
       interiorul nume-rută sunt ignorate. În mod similar, dacă un fișier este deschis în timp ce se scanează un
       director, iar fișierul respectiv are o directivă .include care specifică un director, aceasta este de
       asemenea ignorată.

       Ca regulă generală, nume-rută trebuie să fie o rută absolută; acest lucru poate fi impus cu pragmele
       abspath și includedir, descrise mai jos. Variabila de mediu OPENSSL_CONF_INCLUDE, dacă există, este
       antepusă la toate numele de rută relative. Dacă numele de rută este încă relativ, acesta este interpretat
       pe baza directorului de lucru curent.

       Pentru a solicita ca toate includerile de fișiere să numească rute absolute, utilizați următoarea
       directivă:

         .pragma [=] abspath:valoare

       Comportamentul implicit, în care valoare este false sau off, este de a permite rute relative. Pentru a
       solicita ca toate numele de rută .include să fie rute absolute, utilizați o valoare valoare de true sau
       on.

       În aceste fișiere, semnul dolarului, $, este utilizat pentru a face trimitere la o variabilă, așa cum
       este descris mai jos. Cu toate acestea, pe unele platforme, este obișnuit să se trateze $ ca un caracter
       obișnuit în numele simbolurilor. Suportul pentru acest comportament poate fi realizat cu următoarea
       directivă:

         .pragma [=] dollarid:valoare

       Comportamentul implicit, în cazul în care valoare este false sau off, este de a trata semnul de dolar ca
       indicând un nume de variabilă; „foo$bar” este interpretat ca „foo” urmat de expansiunea variabilei „bar”.
       Dacă valoare este true sau on, atunci „foo$bar” este un nume unic de șapte caractere, iar expansiunile
       variabilelor trebuie specificate folosind acolade sau paranteze.

         .pragma [=] includedir:valoare

       Dacă un nume de rută relativ este specificat în directiva .include, iar variabila de mediu
       OPENSSL_CONF_INCLUDE nu există, atunci valoarea pragmei includedir, dacă există, este anexată la numele
       de rută.

   Configurări
       Un fișier de configurare este împărțit într-un număr de secțiuni. O secțiune începe cu numele secțiunii
       între paranteze drepte și se termină când începe o nouă secțiune sau la sfârșitul fișierului. Numele
       secțiunii poate fi format din caractere alfanumerice și liniuțe de subliniere. Spațiul alb dintre nume și
       paranteze este eliminat.

       Prima secțiune a unui fișier de configurare este specială și este denumită secțiunea implicită -
       „default”. Această secțiune este de obicei fără nume și se întinde de la începutul fișierului până la
       prima secțiune cu nume. Atunci când se caută un nume, acesta este căutat mai întâi în secțiunea curentă
       sau numită și apoi în secțiunea implicită, dacă este necesar.

       Mediul este asociat unei secțiuni numite ENV.

       Într-o secțiune se află o serie de atribuiri de nume/valori, descrise mai detaliat mai jos. Reamintim că
       parantezele drepte afișate în acest exemplu sunt obligatorii, nu opționale:

        [ secțiune ]
        nume1 = Aceasta este valoarea1
        nume2 = O altă valoare
        ...
        [ secțiune-nouă ]
        nume1 = Noua valoare1
        nume3 = Valoarea 3

       nume poate conține orice caractere alfanumerice, precum și câteva semne de punctuație, cum ar fi . , ; și
       _.  Spațiul alb după nume și înainte de semnul egal este ignorat.

       În cazul în care un nume se repetă în aceeași secțiune, toate valorile, cu excepția ultimei, sunt
       ignorate. În anumite circumstanțe, cum ar fi în cazul DN-urilor certificatelor, același câmp poate apărea
       de mai multe ori.  Pentru a permite acest lucru, comenzi precum openssl-req(1) ignoră orice text de
       început care este precedat de un punct. De exemplu:

        1.OU = Primul OU
        2.OU = Al doilea OU

       valoare constă din șirul care urmează caracterului = până la sfârșitul liniei, cu eliminarea spațiilor
       albe de la începutul și sfârșitul acestuia.

       Șirul de valori este supus expansiunii variabilei. Textul $var sau "${var}" inserează valoarea variabilei
       numite din secțiunea curentă. Pentru a utiliza o valoare din altă secțiune, utilizați $section::nume sau
       "${section::nume}". Prin utilizarea $ENV::nume, valoarea variabilei de mediu specificate va fi înlocuită.

       Variabilele trebuie să fie definite înainte de a se face referire la valoarea lor, altfel se semnalează o
       eroare și fișierul nu se va încărca. Acest lucru poate fi rezolvat prin specificarea unei valori
       implicite în secțiunea default (implicită) înainte ca variabila să fie utilizată.

       Orice definiții de nume/valoare dintr-o secțiune ENV sunt disponibile pentru fișierul de configurare, dar
       nu sunt propagate în mediu.

       Este o eroare dacă valoarea depășește 64k.

       Este posibilă eludarea anumitor caractere prin utilizarea unei singure ghilimele ' sau a unei ghilimele
       duble " în jurul valorii sau prin utilizarea unei bare inverse \ înaintea caracterului, Prin
       transformarea ultimului caracter al unei linii într-un \, un șir valoare poate fi întins pe mai multe
       linii. În plus, sunt recunoscute secvențele \n, \r, \b și \t.

       Regulile de extindere și de eludare descrise mai sus, care se aplică la valoare, se aplică și la numele
       rutei directivei .include.

CONFIGURAREA BIBLIOTECII OPENSSL

       Secțiunile de mai jos utilizează termenul informal modul pentru a se referi la o parte din
       funcționalitatea OpenSSL. Acesta nu este același cu termenul formal modul FIPS, de exemplu.

       Configurația OpenSSL caută valoarea lui openssl_conf în secțiunea implicită și o ia ca nume al unei
       secțiuni care specifică modul de configurare a oricăror module din bibliotecă. Nu este o eroare să lăsați
       orice modul în configurația sa implicită. O aplicație poate specifica un nume diferit apelând direct
       CONF_modules_load_file(), de exemplu.

       OpenSSL verifică, de asemenea, valoarea lui config_diagnostics. Dacă aceasta există și are o valoare
       numerică diferită de zero, orice fanioane de suprimare a erorilor transmise către CONF_modules_load() vor
       fi ignorate. Această opțiune este utilă pentru diagnosticarea configurărilor greșite, dar utilizarea sa
       în producție necesită o analiză suplimentară. Cu această opțiune activată, o eroare de configurare va
       împiedica complet accesul la un serviciu. Fără această opțiune și în prezența unei erori de configurare,
       accesul va fi permis, dar configurația dorită nu va fi utilizată.

        # Acestea trebuie să fie în secțiunea implicită
        config_diagnostics = 1
        openssl_conf = openssl_init

        [openssl_init]
        oid_section = oids
        providers = providers
        alg_section = evp_properties
        ssl_conf = ssl_configuration
        engines = engines
        random = random

        [oids]
        ... noi oid-uri aici ...

        [providers]
        ... chestii despre furnizori aici ...

        [evp_properties]
        ... proprietățile EVP aici ...

        [ssl_configuration]
        ... proprietăți de configurare SSL/TLS aici ...

        [engines]
        ... proprietățile motoarelor aici ...

        [random]
        ... proprietățile pentru aleatoriu aici ...

       Semantica fiecărui modul este descrisă mai jos. Expresia „în secțiunea de inițializare” se referă la
       secțiunea identificată prin openssl_conf sau alt nume (dat ca openssl_init în exemplul de mai sus).
       Exemplele de mai jos presupun că configurația de mai sus este utilizată pentru a specifica secțiunile
       individuale.

   Configurarea identificatorului de obiect ASN.1
       Numele oid_section din secțiunea de inițializare numește secțiunea care conține perechi nume/valoare de
       OID-uri.  Numele este numele scurt; valoarea este un nume lung opțional urmat de o virgulă și de valoarea
       numerică. În timp ce unele comenzi OpenSSL au propria secțiune pentru specificarea OID-urilor, această
       secțiune le face disponibile pentru toate comenzile și aplicațiile.

        [oids]
        shortName = un nume OID foarte lung, 1.2.3.4
        oid1-nou = 1.2.3.4.1
        un_alt_oid = 1.2.3.5

       Dacă o configurație completă cu fragmentul de mai sus se află în fișierul exemplu.cnf, atunci următoarea
       linie de comandă:

        OPENSSL_CONF=exemplu.cnf openssl asn1parse -genstr OID:1.2.3.4.1

       va genera:

        0:d=0  hl=2 l=   4 prim: OBJECT            :oid1-nou

       arătând că OID-ul „oid1-nou” a fost adăugat ca „1.2.3.4.1”.

   Configurarea furnizorului
       Numele providers din secțiunea de inițializare numește secțiunea care conține configurația furnizorului
       criptografic. Atribuirile nume/valoare din această secțiune denumesc fiecare un furnizor și indică
       secțiunea de configurare pentru furnizorul respectiv. Secțiunea specifică furnizorului este utilizată
       pentru a specifica modul de încărcare a modulului, activarea acestuia și definirea altor parametri.

       În cadrul unei secțiuni de furnizori (providers), următoarele denumiri au semnificația următoare:

       identity
           Aceasta  este  utilizată  pentru  a  specifica  un  nume alternativ, care înlocuiește numele implicit
           specificat în lista furnizorilor.  De exemplu:

            [providers]
            foo = furnizor-foo

            [furnizor-foo]
            identity = modulul-meu-fips

       module
           Specifică ruta către modulul (de obicei o bibliotecă partajată) care trebuie încărcat.

       activate
           Dacă este prezentă și definită la una dintre valorile yes, on, true sau 1, atunci furnizorul  asociat
           va  fi  activat.  Dimpotrivă, definirea acestei valori la no, off, false sau 0 va împiedica activarea
           furnizorului. Definițiile pot fi date cu majuscule sau minuscule. Definirea activării la  orice  altă
           valoare sau omiterea unei valori de configurare va duce la o eroare.

           = element soft_load

           Dacă este activată, informează biblioteca să șteargă stiva de erori în cazul neactivării furnizorului
           solicitat.  O  valoare de 1, yes, true sau on (în minuscule sau majuscule) va activa această opțiune,
           în timp ce o valoare de 0, no, false sau off (tot în minuscule sau majuscule)  va  dezactiva  această
           opțiune.  Orice altă valoare va produce o eroare.  Rețineți că această opțiune are valoarea implicită
           off dacă nu este furnizată

       Toți parametrii din secțiune, precum și din subsecțiuni sunt puse la dispoziția furnizorului.

       Furnizorul implicit și activarea acestuia

       Dacă  nu  este  activat  în  mod  explicit  niciun  furnizor,  cel implicit este activat în mod implicit.
       Consultați OSSL_PROVIDER-default(7) pentru mai multe detalii.

       Dacă adăugați o secțiune care activează în mod explicit orice alt furnizor (furnizori), cel mai  probabil
       trebuie  să  activați  în mod explicit furnizorul implicit, altfel acesta devine indisponibil în openssl.
       Aceasta poate face ca sistemul să nu fie disponibil de la distanță.

   Configurarea EVP
       Numele  alg_section  din  secțiunea  de  inițializare  denumește  secțiunea  care  conține  proprietățile
       algoritmice atunci când se utilizează API-ul EVP.

       În secțiunea proprietăți ale algoritmului, următoarele denumiri au semnificația următoare:

       default_properties
           Valoarea   poate   fi   orice   este   acceptabil   ca   șir  de  interogare  a  proprietății  pentru
           EVP_set_default_properties().

       fips_mode (depreciat)
           Valoarea este un boolean care poate fi yes sau no.  Dacă valoarea este yes, aceasta este  echivalentă
           cu:

            default_properties = fips=yes

           Dacă  valoarea  este  no, nu se întâmplă nimic. Utilizarea acestui nume este depreciată și, dacă este
           utilizat, trebuie să fie singurul nume din secțiune.

   Configurarea SSL
       Numele ssl_conf din secțiunea de inițializare denumește  secțiunea  care  conține  lista  configurațiilor
       SSL/TLS.  La  fel  ca  în  cazul furnizorilor, fiecare nume din această secțiune identifică o secțiune cu
       configurația pentru numele respectiv. De exemplu:

        [ssl_configuration]
        server = server_tls_config
        client = client_tls_config
        system_default = tls_system_default

        [server_tls_config]
        ... configurarea pentru servere SSL/TLS ...

        [client_tls_config]
        ... configurarea pentru clienți SSL/TLS ...

       Numele configurației system_default are o semnificație specială. Dacă există, acesta  se  aplică  ori  de
       câte  ori se creează un obiect SSL_CTX. De exemplu, pentru a impune versiuni minime ale protocoalelor TLS
       și DTLS la nivel de sistem:

        [tls_system_default]
        MinProtocol = TLSv1.2
        MinProtocol = DTLSv1.2

       Versiunea minimă a protocolului TLS se aplică obiectelor SSL_CTX care sunt bazate pe TLS,  iar  versiunea
       minimă  a  protocolului  DTLS  obiectelor  care sunt bazate pe DTLS. Același lucru este valabil și pentru
       versiunile maxime stabilite cu MaxProtocol.

       Fiecare secțiune de configurare constă în perechi nume/valoare care sunt  analizate  de  SSL_CONF_cmd(3),
       care  va fi apelat de SSL_CTX_config() sau SSL_config(), după caz. Rețineți că orice caractere înainte de
       un punct inițial în secțiunea de configurare  sunt  ignorate,  astfel  încât  aceeași  comandă  poate  fi
       utilizată  de  mai multe ori. Acest lucru este probabil cel mai util pentru încărcarea diferitelor tipuri
       de chei, după cum se arată aici:

        [server_tls_config]
        RSA.Certificate = server-rsa.pem
        ECDSA.Certificate = server-ecdsa.pem

   Configurarea motorului
       Numele engines din secțiunea de inițializare numește secțiunea care  conține  lista  de  configurații  de
       MOTOR. Ca și în cazul furnizorilor, fiecare nume din această secțiune identifică un motor cu configurația
       pentru  motorul  respectiv.  Secțiunea  specifică  motorului  este  utilizată pentru a specifica modul de
       încărcare a motorului, activarea acestuia și definirea altor parametri.

       În cadrul unei secțiuni a motorului, următoarele denumiri au semnificația următoare:

       engine_id
           Acesta este utilizat pentru  a  specifica  un  nume  alternativ,  care  înlocuiește  numele  implicit
           specificat în lista de motoare. Dacă este prezent, trebuie să fie primul. De exemplu:

            [engines]
            foo = motor-foo

            [foo_engine]
            engine_id = al_meu-foo

       dynamic_path
           Aceasta  încarcă  și adaugă un MOTOR din ruta dată. Este echivalent cu trimiterea ctrl-urilor SO_PATH
           cu argumentul de rută urmat de LIST_ADD cu valoarea 2 și LOAD către MOTORUL dinamic.  Dacă acesta  nu
           este  comportamentul necesar, atunci se pot trimite ctrl-uri alternative direct către MOTORUL dinamic
           folosind comenzile ctrl.

       init
           Specifică dacă se inițializează MOTORUL. Dacă valoarea este 0, MOTORUL nu  va  fi  inițializat,  dacă
           valoarea  este  1 se încearcă inițializarea imediată a MOTORULUI. Dacă comanda init nu este prezentă,
           atunci se va încerca inițializarea MOTORULUI după  ce  toate  comenzile  din  secțiunea  sa  au  fost
           procesate.

       default_algorithms
           Aceasta   stabilește  algoritmii  impliciți  pe  care  un  MOTOR  îi  va  furniza  utilizând  funcția
           ENGINE_set_default_string().

       Toate celelalte nume sunt considerate a fi numele unei comenzi ctrl care este trimisă  către  MOTOR,  iar
       valoarea  este argumentul transmis împreună cu comanda. Valoarea specială EMPTY înseamnă că nicio valoare
       nu este trimisă împreună cu comanda. De exemplu:

        [engines]
        foo = motor-foo

        [motor-foo]
        dynamic_path = /o/rută/motorfoo.so
        some_ctrl = o_valoare
        default_algorithms = ALL
        other_ctrl = EMPTY

   Configurarea generatorului de numere aleatorii
       Numele random din secțiunea de inițializare denumește secțiunea care conține parametrii generatorului  de
       numere aleatorii.

       În secțiunea „random”, următoarele nume au semnificația:

       random
           Acesta este utilizat pentru a specifica generatorul de biți aleatori. De exemplu:

            [random]
            random = CTR-DRBG

           Generatoarele de biți aleatorii disponibile sunt:

           CTR-DRBG
           HASH-DRBG
           HMAC-DRBG
       cipher
           Aceasta  specifică  ce  algoritm  de  criptare va utiliza generatorul de biți aleatori CTR-DRBG. Alte
           generatoare de biți aleatori ignoră acest nume. Valoarea implicită este AES-256-CTR.

       digest
           Aceasta specifică ce algoritm de  sumă  de  control  vor  utiliza  generatoarele  de  biți  aleatorii
           HASH-DRBG sau HMAC-DRBG.  Alte generatoare de biți aleatorii ignoră acest nume.

       properties
           Aceasta definește interogarea proprietății utilizată la preluarea generatorului de biți aleatori și a
           oricăror algoritmi subiacenți.

       seed
           Aceasta  definește  sursa  de  aleatoriu  care  ar  trebui utilizată. În mod implicit, SEED-SRC va fi
           utilizată în afara furnizorului FIPS. Furnizorul FIPS utilizează reapelări pentru a  accesa  aceleași
           surse de aleatoriu din afara limitei validate.

       seed_properties
           Aceasta definește interogarea proprietății utilizată la preluarea sursei de biți aleatorii.

       random_provider
           Aceasta  stabilește furnizorul care trebuie utilizat pentru apelurile RAND_bytes(3) în locul surselor
           de entropie încorporate. Valoarea implicită este „fips”.  Dacă furnizorul numit nu este încărcat, vor
           fi utilizate sursele de entropie încorporate.

EXEMPLE

       Acest exemplu arată cum se utilizează ghilimelele și caracterele de eludare.

        # Aceasta este secțiunea implicită.
        HOME = /temp
        configdir = $ENV::HOME/config

        [ section_one ]
        # Ghilimelele permit spații albe la început și la sfârșit
        any = "orice nume de variabilă"
        other = Un șir care poate \
        acoperi mai multe linii \
        prin includerea \\ caracterelor
        message = Salutare lume!\n

        [ section_two ]
        greeting = $section_one::message

       Acest exemplu arată cum să se extindă variabilele de mediu în condiții de siguranță.  În  acest  exemplu,
       variabila  tempfile  este  destinată  să se refere la un fișier temporar, iar variabila de mediu TEMP sau
       TMP, dacă este prezentă, specifică directorul în care  ar  trebui  plasat  fișierul.  Deoarece  secțiunea
       implicită  este  verificată  dacă  o  variabilă  nu  există,  este posibil să se definească ca TMP să fie
       implicit /tmp, iar TEMP să fie implicit TMP.

        # Aceste două linii trebuie să fie în secțiunea implicită.
        TMP = /tmp
        TEMP = $ENV::TMP

        # Aceasta poate fi utilizată oriunde
        tmpfile = ${ENV::TEMP}/tmp.nume-fișier

       Acest exemplu arată cum se poate aplica modul FIPS pentru aplicația sample.

        sample = fips_config

        [fips_config]
        alg_section = evp_properties

        [evp_properties]
        default_properties = "fips=yes"

MEDIU

       OPENSSL_CONF
           Ruta către fișierul de configurare sau șirul gol pentru niciunul. Ignorată în programele  set-user-ID
           și set-group-ID.

       OPENSSL_ENGINES
           Ruta către directorul motoarelor. Ignorată în programele set-user-ID și set-group-ID.

       OPENSSL_MODULES
           Ruta  către directorul cu module OpenSSL, cum ar fi furnizorii. Ignorată în programele set-user-ID și
           set-group-ID.

       OPENSSL_CONF_INCLUDE
           Ruta opțională care se adaugă în fața tuturor rutelor .include.

ERORI

       Nu există nicio modalitate de a include caractere folosind forma octală \nnn. Șirurile de caractere  sunt
       toate terminate cu nul, astfel încât nulurile nu pot face parte din valoare.

       Eludarea  nu  este  chiar  corectă: dacă doriți să utilizați secvențe precum \n, nu puteți utiliza nici o
       eludare a ghilimelelor pe aceeași linie.

       Limita conform căreia un singur director poate fi deschis și citit în același timp poate fi considerată o
       eroare și ar trebui remediată.

ISTORIC

       Un API nedocumentat, NCONF_WIN32(), folosea un  set  ușor  diferit  de  reguli  de  analizare  care  erau
       destinate  să fie adaptate platformei Microsoft Windows. În special, caracterul de bară oblică inversă nu
       era un caracter de eludare și putea fi utilizat în nume de rute, numai caracterul de ghilimele duble  era
       recunoscut,  iar  comentariile începeau cu punct și virgulă. Această funcție a fost depreciată în OpenSSL
       3.0; aplicațiile cu fișiere de configurare care utilizează această sintaxă vor trebui să fie modificate.

CONSULTAȚI ȘI

       openssl-x509(1),   openssl-req(1),   openssl-ca(1),    openssl-fipsinstall(1),    ASN1_generate_nconf(3),
       EVP_set_default_properties(3),     CONF_modules_load(3),     CONF_modules_load_file(3),    RAND_bytes(3),
       fips_config(5), and x509v3_config(5).

DREPTURI DE AUTOR

       Drepturi de autor 2000-2025 The OpenSSL Project Authors. Toate drepturile rezervate.

       Licențiat sub Licența Apache  2.0  („License”).  Nu  aveți  voie  să  utilizați  acest  fișier  decât  în
       conformitate  cu  licența.  Puteți  obține  o copie din fișierul LICENSE din distribuția sursei sau de la
       <https://www.openssl.org/source/license.html>.

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

3.5.0                                              28 mai 2025                                 CONFIGURARE(5SSL)