După comentariul tău, răspund în general, deoarece nu putem discuta detalii specifice din instalarea reală.
Când un program bazat pe Linux, cum ar fi rsyslog, utilizează TLS, programul este de obicei construit cu (legat la) o bibliotecă TLS standard, cum ar fi OpenSSL sau GnuTLS. Aceste biblioteci accesează un depozit de certificate (un fișier, un director de fișiere sau o bază de date), localizează certificatele adecvate în magazin, construiesc un lanț de certificate și efectuează verificarea certificatului de server (cu ajutorul bibliotecilor criptografice și altor biblioteci subiacente).
O afirmație precum DefaultNetstreamDriverCAFile="/etc/ssl/cert.pem"
transmite calea depozitului de certificate (fișier) dorit către acea bibliotecă TLS (un sistem poate avea mai multe depozite de certificate).Deci, atunci când nu aveți acea linie comentată, rsyslog îi spune bibliotecii TLS să folosească acel fișier text, care conține unul sau mai multe certificate formatate PEM.
Dacă comentați acea linie, atunci ceea ce se întâmplă depinde de biblioteca TLS de bază. Dacă biblioteca a fost construită cu un depozit de certificate implicit, atunci biblioteca poate efectua în continuare negocierea TLS. De exemplu, pe cutia mea Ubuntu 20, un program care folosește biblioteca GnuTLS ar fi legat la /usr/lib/x86_68-linux-gnu/libgnutls.so
. Fișierul bibliotecii de obiecte partajate a fost compilat cu o cale implicită a depozitului de certificate /etc/ssl/certs/ca-certificates.crt
-- un depozit de certificate de fișiere text care este o locație standard pentru un sistem de operare Ubuntu. Puteți vedea această cale codificată dacă rulați comanda:
șiruri de caractere /usr/lib/x86_68-linux-gnu/libgnutls.so | certificate grep
.
Deci, dacă ar fi să rulez rsyslog conectat la GnuTLS cu aceeași linie DefaultNetstreamDriverCAFile comentată, ar fi folosită calea codificată greu către depozitul de certificate, iar rsyslog ar putea finaliza negocierile TLS.
Acesta este probabil ceea ce s-a întâmplat pe sistemul dvs. și de ce mesajul pe care l-ați văzut a fost doar de nivel „avertisment”. Programul rsyslog nu știe dacă biblioteca TLS de bază are o valoare implicită, așa că rsyslog a fost scris pentru a vă avertiza și continua. Dacă nici un depozit de certificate nu este disponibil pentru biblioteca TLS subiacentă, atunci acel cod va returna un mesaj de eroare fatal la rsyslog, iar rsyslog va transmite/înregistra mesajul către utilizator.