Am un server centOS7 activat HTTPS cu GitLab/nginx, cu o înregistrare A înregistrată pe un DNS plătit și certificat verificat de Let's Encrypt. (Voi folosi aici gitlab.example.com). Numele de domeniu a fost testat pentru a fi accesibil cel puțin prin ssh și HTTP simplu.
Cu HTTPS, mă pot conecta la server folosind IP direct, cum ar fi https://x.x.x.x . Deși va apărea eroarea de certificat nesigură (din cauza nepotrivirii numelor de domeniu), dacă aleg să continui în ciuda avertismentului, pagina gitlab va apărea corect.
Totuși, dacă încerc să accesez folosind https://gitlab.example.com eroarea ERR_SSL_PROTOCOL_ERROR
va apărea.
Am încercat să folosesc openssl s_client pentru a depana problema și am obținut următoarele rezultate
openssl s_client -connect gitlab.example.com:443 -servername gitlab.example.com
CONECTAT(00000003)
4658671212:error:1400410B:Rutine SSL:CONNECT_CR_SRVR_HELLO:număr de versiune greșit:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.120.1/libresctsl-2/libresctsl-2/. 386:
---
nu este disponibil niciun certificat de egalitate
---
Nu s-au trimis nume de CA de certificat de client
---
SSL handshake a citit 5 octeți și a scris 0 octeți
---
Nou, (NONE), Cipher este (NIMIC)
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Sesiune SSL:
Protocol: TLSv1.2
Cifrare: 0000
Sesiune ID:
ID-ul sesiunii-ctx:
Cheia principala:
Ora de începere: 1641487269
Timeout: 7200 (sec)
Verificați codul de returnare: 0 (ok)
---
Interesant, dacă nu includ -numele serverului
opțiunea, nu va exista nicio eroare și certificatele vor fi achiziționate corect. Folosirea IP directă cu portul 443 va obține și certificatele corect.
Am încercat să caut pe google eroarea timp de câteva ore, dar fără succes.
De asemenea, am încercat să folosesc curl pentru a accesa și am primit aceeași eroare (se pare că această informație este mai puțin utilă decât rezultatul openssl s_client, cu excepția poate informației că numele de domeniu este mapat corect la adresa IP)
curl --insecure -Lv https://gitlab.example.com
* Încerc cu x.x.x.x...
* TCP_NODELAY setat
* Conectat la gitlab.example.com (x.x.x.x) portul 443 (#0)
* ALPN, oferind h2
* ALPN, oferind http/1.1
* setați cu succes locațiile de verificare a certificatelor:
* CAfile: /etc/ssl/cert.pem
CApath: niciunul
* TLSv1.2 (OUT), strângere de mână TLS, salut client (1):
* eroare:1400410B:Rutine SSL:CONNECT_CR_SRVR_HELLO:număr de versiune greșit
* Închiderea conexiunii 0
curl: (35) eroare:1400410B:Rutine SSL:CONNECT_CR_SRVR_HELLO:număr de versiune greșit
Nu apare nimic în jurnalul Gitlab și cred că cererea nici nu a depășit etapa de strângere de mână SSL.
Sunt blocat în acest moment. Orice ajutor sau indiciu despre cum să procedați chiar și cu această problemă ar fi apreciat.