Puncte:0

Certificatul SSL nu este valid atunci când serverul se conectează singur

drapel in

Am o rețea locală unde adresa IP a serverului [server] este: 192.168.88.201, gazdă: local.mydomain.com. Acest server este Ubuntu 18.04.6 LTS care rulează Apache+PHP. De asemenea, acest server are Let's Encrypt SSL instalat folosind certbot.

Când utilizați un alt computer în rețeaua locală, SSL funcționează bine la accesare https://local.mydomain.com -> Chrome arată că certificarea este valabilă.

Problema vine atunci când serverul se conectează singur și crede că certificarea nu este valabilă.

Sunt blocat aici deoarece nu sunt sigur unde ar putea fi problema. Ai vreo sugestie?

De exemplu: În terminalul [SERVER], când:

root@server:/tmp# wget https://local.mydomain.com
--2022-01-07 07:47:18-- https://local.mydomain.com/
Se rezolvă local.mydomain.com (local.mydomain.com)... 192.168.88.201
Se conectează la local.mydomain.com (local.mydomain.com)|192.168.88.201|:443... conectat.
EROARE: nu se poate verifica certificatul local.mydomain.com, emis de âCN=R3,O=Let's Encrypt,C=USâ:
  Nu se poate verifica la nivel local autoritatea emitentului.
Pentru a vă conecta la local.mydomain.com în mod nesigur, utilizați „--no-check-certificate”.
root@server:/tmp# openssl s_client -connect local.mydomain.com:443 -prexit > a.txt
CONECTAT(00000005)
---
Lanț de certificate
 0 s:CN = local.mydomain.com
   i:C = US, O = Let's Encrypt, CN = R3
---
Certificat de server
-----ÎNCEPE CERTIFICAT-----
***
-----CERTIFICAT FINAL-----
subiect=CN = local.mydomain.com

emitent=C = SUA, O = Let's Encrypt, CN = R3

---
Nu s-au trimis nume de CA de certificat de client
Rezumat peer signing: SHA256
Tip semnătură peer: RSA-PSS
Cheie Temp Server: X25519, 253 de biți
---
SSL handshake a citit 2005 octeți și a scris 402 octeți
Eroare de verificare: nu se poate verifica primul certificat
---
Nou, TLSv1.3, Cipher este TLS_AES_256_GCM_SHA384
Cheia publică a serverului este de 2048 biți
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Datele timpurii nu au fost trimise
Verificați codul de returnare: 21 (nu se poate verifica primul certificat)
---
HTTP/1.1 400 Solicitare greșită
Data: vineri, 07 ianuarie 2022 06:53:07 GMT
Server: Apache/2.4.29 (Ubuntu)
Lungimea conținutului: 313
Conexiune: aproape
Tip de conținut: text/html; set de caractere=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 de solicitare greșită</title>
</head><body>
<h1>Solicitare greșită</h1>
<p>Browserul dvs. a trimis o solicitare pe care acest server nu a putut-o înțelege.<br />
</p>
<hr>
<adresă>Server Apache/2.4.29 (Ubuntu) la local.mydomain.com Port 443</adresă>
</body></html>
---
A sosit noua sesiune după strângere de mână:
Sesiune SSL:
    Protocol: TLSv1.3
    Cifrare: TLS_AES_256_GCM_SHA384
    ID sesiune: E5F662F909BA717C5FA0D6DBBDA777CA284E164FACC4784915D7E08DF39B63DB
    ID-ul sesiunii-ctx:
    PSK de reluare: FFA7F4A4502316545E4147887CE4A7D552DDF54A92A8C2B5D87601BEA01B8DDEC2292004635AC152E71188CEDEF099CE
    Identitate PSK: Niciuna
    Sugestie de identitate PSK: Niciuna
    Nume de utilizator SRP: niciunul
    Sugestie pentru durata de viață a biletului de sesiune TLS: 300 (secunde)
    Tichet sesiune TLS:
    0000 ****

    Ora de începere: 1641538382
    Timeout: 7200 (sec)
    Verificați codul de returnare: 21 (nu se poate verifica primul certificat)
    Secret principal extins: nu
    Date maxime timpurii: 0
---
citeste R BLOC
---
A sosit noua sesiune după strângere de mână:
Sesiune SSL:
    Protocol: TLSv1.3
    Cifrare: TLS_AES_256_GCM_SHA384
    ID sesiune: BABB13C496B291A43F4FDDCD20FE5568574F79ACA2D06203A53D9072FBE3A2C8
    ID-ul sesiunii-ctx:
    PSK de reluare: 90F330C4D3B9BA54DB4CA687400E692CC7AF250F7E6A58493D579A9DD6C3DBA3E5B1F2BA94DA7AEA8CF483C2FB19211B
    Identitate PSK: Niciuna
    Sugestie de identitate PSK: Niciuna
    Nume de utilizator SRP: niciunul
    Sugestie pentru durata de viață a biletului de sesiune TLS: 300 (secunde)
    Tichet sesiune TLS:
    0000 - ***

    Ora de începere: 1641538382
    Timeout: 7200 (sec)
    Verificați codul de returnare: 21 (nu se poate verifica primul certificat)
    Secret principal extins: nu
    Date maxime timpurii: 0
---
citeste R BLOC
---
Lanț de certificate
 0 s:CN = local.mydomain.com
   i:C = US, O = Let's Encrypt, CN = R3
---
Certificat de server
-----ÎNCEPE CERTIFICAT-----
***
-----CERTIFICAT FINAL-----
subiect=CN = local.mydomain.com

emitent=C = SUA, O = Let's Encrypt, CN = R3

---
Nu s-au trimis nume de CA de certificat de client
Rezumat peer signing: SHA256
Tip semnătură peer: RSA-PSS
Cheie Temp Server: X25519, 253 de biți
---
SSL handshake a citit 3152 de octeți și a scris 450 de octeți
Eroare de verificare: nu se poate verifica primul certificat
---
Nou, TLSv1.3, Cipher este TLS_AES_256_GCM_SHA384
Cheia publică a serverului este de 2048 biți
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Datele timpurii nu au fost trimise
Verificați codul de returnare: 21 (nu se poate verifica primul certificat)
---
Puncte:2
drapel se
Lanț de certificate
 0 s:CN = local.mydomain.com
   i:C = US, O = Let's Encrypt, CN = R3

Serverul este configurat greșit și trimite doar un lanț incomplet, lipsind certificatele intermediare. Un site configurat corect ar trebui să returneze un certificat intermediar suplimentar, care să conducă la ISRG Root X1. Let's Encrypt are un exemplu de server pentru asta:

$ openssl s_client -connect valid-isrgrootx1.letsencrypt.org:443
...
Lanț de certificate
 0 s:CN = valid-isrgrootx1.letsencrypt.org
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = SUA, O = Internet Security Research Group, CN = ISRG Root X1

Când utilizați alt computer... Chrome arată că certificarea este valabilă.

Browserul va rezolva, de obicei, cu succes o astfel de configurare greșită, descărcând certificatele intermediare lipsă sau utilizând copii stocate în cache. Alți clienți nu vor. Deci nu este o idee bună să verificați doar dacă funcționează cu browserul. Folosiți în schimb site-uri precum SSL Labs care ar raporta „probleme de lanț” ca problemă în cazul dvs.

drapel in
Multumesc, ai avut dreptate! Sa dovedit că în configurația Apache trebuie să folosesc fullchain.pem în loc de cert.pem. SSLCertificateFile /etc/letsencrypt/live/local.mydomain.com/cert.pem -> SSLCertificateFile /etc/letsencrypt/live/local.mydomain.com/fullchain.pem

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.