Puncte:0

Înregistrați certificatul ssl pe care apache îl folosește pentru fiecare conexiune SSL, pentru înregistrare și depanare îmbunătățite

drapel bg

Am un server web apache, cu certificate mod_ssl și SSL de la letsencrypt. certbot raportează că sunt în regulă și nu expiră. Câțiva diferiți (din mulți utilizatori ai mei) raportează că primesc certificate SSL invalide/expirate de la server (și am văzut rezultate de la wget de la ei pentru a dovedi că).

Pentru a depana acest lucru, vreau să înregistrez o mulțime de detalii ale fiecărei conexiuni SSL. Aș dori să înregistrez, pentru fiecare conexiune SSL, IP-ul de la distanță și detalii despre conexiunea SSL (de exemplu, protocol), clientul a furnizat valoarea SNI (identificarea numelui serverului) și apoi ce certificat/lanț/cheie SSL a fost folosit pe server. . vreau sa

Cu ErrorLog ssl:traceN (pentru diverse N) Pot obține unele dintre aceste detalii. Dar nu pot vedea ce certificat SSL folosește serverul pentru fiecare conexiune. Cum pot face acest lucru?

Nikita Kipriyanov avatar
drapel za
`wget` nu este cel mai bun mod de a verifica certificatul. Aflați cum să utilizați instrumentul `openssl s_client`, care a fost conceput doar pentru scopuri de depanare SSL/TLS.
drapel bg
Nu folosesc `wget` pentru a verifica certificatul SSL. Eu folosesc `openssl s_client` pentru monitorizare. Cu toate acestea, unii dintre utilizatorii mei folosesc `wget` pentru a descărca fișiere și întâmpină această eroare și mi-au trimis prin e-mail rezultatul terminalului.
Nikita Kipriyanov avatar
drapel za
S-ar putea ca `wget` lor să folosească vechea bază de date `ca_certificates` care nu include noul certificat rădăcină Let's Encrypt sau altele. De aceea se plânge wget-ul lor. Dacă este cazul, nu poți și nu trebuie să faci nimic, este partea lor care trebuie remediată.
Puncte:1
drapel in

mod_ssl exportă o grămadă de variabile de mediu (vezi lista aici), care poate fi folosit pentru a înregistra informații despre certificat, de exemplu, într-un LogFormat directiva ca aceasta:

LogFormat "cert_CN='%{SSL_SERVER_S_DN_CN}e', cert_expires='%{SSL_SERVER_V_END}e', vhost='%{Host}i', client='%h'" ssl_combined

Cu toate acestea, înainte de a începe înregistrarea, asigurați-vă că verificați Acest articol despre expirarea certificatului DST Root CA X3.Este cel care a semnat CA rădăcină a Let's Encrypt și a expirat în septembrie. Cu toate acestea, CA rădăcină a Let's Encrypt este acceptată ca un CA de încredere în sine de aproape fiecare sistem. Pentru aceasta, expirarea nu este o problemă, iar certificatele emise continuă să funcționeze, cu exceptia pentru utilizarea sistemelor mai vechi openssl versiunea < 1.1.0, care nu oprește validarea când a găsit un CA de încredere, dar insistă să verifice întregul lanț (și eșuează).

Dacă sistemul în cauză are un mai vechi openssl, nu puteți face nimic în privința problemei din partea serverului, openssl ar trebui să fie actualizat pe client. Dacă aceasta nu este o opțiune, introducerea pe lista neagră a certificatului expirat ajută.

drapel bg
da, mă întreb dacă modificarea certificatului de letsencrypt este relevantă aici
Nikita Kipriyanov avatar
drapel za
Din nou, dacă vechea problemă openssl sau vechea ca_certificates există pe client, nu puteți face nimic din partea serverului. Educați-vă utilizatorii, explicați-le de ce utilizarea software-ului învechit este proastă, de ce sunt necesare actualizări.
drapel bg
Da, presupun că este schimbarea lui LE. Dar vreau să fiu 100% sigur.
Puncte:1
drapel za

Apache HTTPD-uri mod_ssl setează diverse variabile de mediu, dintre care unele pot fi folosite pentru a identifica certificatul serverului. De exemplu, există SSL_SERVER_CERT (un certificat complet codificat PEM), SSL_SERVER_S_DN (un DN al subiectului), SSL_SERVER_M_SERIAL (un număr de serie cert).

Le puteți utiliza în configurația de logare:

CustomLog „logs/ssl_request_log” „... %{SSL_SERVER_S_DN}x...”

Citit manualul mod_ssl pentru detalii.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.