Puncte:0

Compatibilitate HTTP/2 activată în apache2 v2.4.25 pe Debian 9.13, dar testele arată că nu există suport pentru HTTP/2

drapel ve

Încerc să configurez suportul HTTP/2, dar ceva nu merge bine

Serverul meu este un motor de calcul Google care rulează versiunea de server Debian 9.13 (stretch) Apache/2.4.25 cu certificate SSL configurate folosind OpenSSL. Când alerg versiunea openssl raportează versiunea 1.1.1g. Când alergi phpinfo(); raportează OpenSSL/1.0.2u. PHP versiunea 7.4.11 și phpinfo(); raporteaza si...

SSL_VERSION_INTERFACE -> mod_ssl/2.4.25
SSL_VERSION_LIBRARY -> OpenSSL/1.0.2u
SSL_PROTOCOL -> TLSv1.2

Am urmat instrucțiunile Aici la „Activați modulul HTTP/2 în Apache” și „Activați HTTP/2 în gazda virtuală Apache” și, de asemenea Aici. După ce fac asta, când rulez comanda apache2ctl -M | grep http2 se întoarce http2_module (partajat) care semnalează că suportul HTTP/2 este activat. Dar nu este în producție.

Iată linia folosită în fișierul meu de configurare a gazdelor virtuale apache2 /etc/apache2/sites-available/default-ssl.conf

<VirtualHost _default_:443>
    Protocoale h2 h2c http/1.1
    ...

Iată informațiile detaliate despre conexiune când se utilizează curl -vso http2_debug.log --http2 https://pharealty.com/ comandă care descarcă cu succes pagina.

* Se încearcă 35.236.101.224...
* TCP_NODELAY setat
* Conectat la pharealty.com (35.236.101.224) portul 443 (#0)
* ALPN, oferind h2
* ALPN, oferind http/1.1
* Selectare cifra: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* setați cu succes locațiile de verificare a certificatelor:
* CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.2 (OUT), antet TLS, stare certificat (22):
} [date de 5 octeți]
* TLSv1.2 (OUT), strângere de mână TLS, salut client (1):
} [date de 512 octeți]
* TLSv1.2 (IN), strângere de mână TLS, salut server (2):
{ [date de 109 octeți]
* TLSv1.2 (IN), strângere de mână TLS, Certificat (11):
{ [date de 4036 de octeți]
* TLSv1.2 (IN), strângere de mână TLS, schimb de chei de server (12):
{ [date de 333 de octeți]
* TLSv1.2 (IN), TLS handshake, Server terminat (14):
{ [date de 4 octeți]
* TLSv1.2 (OUT), TLS handshake, Schimb cheie client (16):
} [70 de octeți de date]
* TLSv1.2 (OUT), cifra de schimbare TLS, salut client (1):
} [1 octeți de date]
* TLSv1.2 (OUT), TLS handshake, Terminat (20):
} [date de 16 octeți]
* TLSv1.2 (IN), cifra de schimbare TLS, salut client (1):
{ [date de 1 octet]
* TLSv1.2 (IN), strângere de mână TLS, Terminat (20):
{ [date de 16 octeți]
* Conexiune SSL folosind TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server acceptat să utilizeze http/1.1
* Certificat de server:
* subiect: CN=pharealty.com
* data începerii: 10 iulie 01:53:04 2021 GMT
* data expirării: 8 octombrie 01:53:03 2021 GMT
* subjectAltName: gazda „pharealty.com” a corespuns certificatului „pharealty.com”
* emitent: C=US; O=Let's Encrypt; CN=R3
* Verificare certificat SSL ok.
} [date de 5 octeți]
> GET / HTTP/1.1
> Gazdă: pharealty.com
> User-Agent: curl/7.52.1
> Accept: */*
>
{ [date de 5 octeți]
< HTTP/1.1 200 OK
< Data: miercuri, 08 septembrie 2021 17:20:21 GMT
< Server: Apache
< Actualizare: h2,h2c
< Conexiune: Upgrade
< Set-Cookie: PHPSESSID=1mv9jqka4n7c7fb6qmtavfsgue; cale=/
< Expiră: joi, 19 noiembrie 1981 08:52:00 GMT
< Cache-Control: fără stocare, fără cache, revalidare obligatorie
< Pragma: fără cache
< X-Pingback: https://pharealty.com/xmlrpc.php
< Link: <https://pharealty.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://pharealty.com/wp-json/wp/v2/pages/48>; rel="alternativ"; type="application/json"
< Link: <https://pharealty.com/>; rel=legatura scurta
< Set-Cookie: phaLandingPage=%2F; expiră=Tu, 08-Mar-2022 17:20:21 GMT; Max-Age=15638400; cale=/
< Variază: Acceptare-Codificare
< Transfer-Coding: fragmentat
< Content-Type: text/html; set de caractere=UTF-8
<
{ [date de 7 octeți]
* Curl_http_done: numit prematur == 0
* Conexiunea #0 la gazda pharealty.com a rămas intactă

Se pare că la început funcționează perfect, apoi mai târziu revine la HTTP/1.1

Din câte îmi pot da seama, am o versiune suficient de nouă de OpenSSL. Și deși această pagină pe care am menționat-o anterior recomandă cu căldură o versiune de apache mai mare decât 2.4.25, nu am reușit să actualizez apache la altceva decât 2.4.25.

Trebuie să configurez un nou certificat SSL după ce fac schimbarea? Versiunea de apache este cea care cauzează problemele?

Am testat site-ul pe mai multe site-uri de testare http/2 și nu reușește de fiecare dată.

djdomi avatar
drapel za
Vă rugăm să faceți upgrade urgent serverul dvs., Stretch este OOS - l-ați activat în general sau numai pe o anumită gazdă? implicit nu înseamnă că funcționează pentru toți în general.
djdomi avatar
drapel za
Actualizare suplimentară: verificați situația dvs.: https://www.howtoforge.com/how-to-enable-http-2-in-apache/
hyjinx avatar
drapel ve
@djdomi da, nu-mi vine să cred că nu am actualizat sistemul de operare. Am reușit să țin totul la zi, cu excepția asta, la naiba. Fac upgrade la Debain 10 buster. Ar trebui să editez configurația pentru a folosi asteriscul în schimb? Nu îmi amintesc cum sau de ce este setat în prezent la ```_default_```.
djdomi avatar
drapel za
Mai întâi aș actualiza, apoi aș face upgrade și, de asemenea, aș adăuga antetul protocolului și vhost-ul
hyjinx avatar
drapel ve
@djdomi după ce am făcut upgrade la Debian 10 buster și am urmat pașii din linkul pe care l-ați furnizat, am reușit să fac totul să funcționeze. Încercam să-l fac să funcționeze cu Debian 10 și PHP 7.4, dar nu am reușit. Folosirea PHP 7.3 a funcționat deoarece php7.3-fpm este disponibil. Dar după ce am revenit la 7.3 de la 7.4, a trebuit să instalez din nou toate extensiile PHP. Comenzile pentru a dezactiva PHP, a activa PHP-FPM, a dezactiva mpm_prefork și a activa mpm_event sunt cele care au făcut diferența în găsirea soluției mele. Dacă postați comentariul dvs. ca răspuns, îl voi semnala ca răspuns și vă voi obține punctele.
djdomi avatar
drapel za
Am făcut-o, vă rugăm să actualizați întrebarea în cazul în care mai aveți o problemă și da, poate fi necesar să instalați modulele necesare pentru fiecare versiune de php separat, poate doriți să vedeți [scriptul site-ului meu github](https://raw.githubusercontent .com/djdomi/php-install/master/run.sh) pentru a instala toate modulele comune
Puncte:0
drapel za

Faceți upgrade la un sistem de operare acceptat

Ai folosit Debian Stretch, care suport principal este deja EOL. (Sfârșitul vieții)
Patch-urile de securitate rămân disponibile până la 2022-06-30.

Schimbați modulul de manipulare Apache

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

Activați SSL și modulul http2

sudo a2enmod ssl  
sudo a2enmod http2  

Activați suportul http2 global sau prin vhost

Adăugați la Apache2.conf:

Protocoale h2 http/1.1

Sau editați vhost și adăugați Protocoale h2 http/1.1

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/public_html/example.com
  SSLEngine on
  SSLCertificateKeyFile /path/to/private.pem
  SSLCertificateFile /path/to/cert.pem
  SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
  Protocols h2 http/1.1 #add this here
</VirtualHost>

Amintiți-vă să reîncărcați serverul Apache.

sudo systemctl reporniți apache2

pentru a prelua toate versiunile PHP, ați putea să aruncați o privire în scriptul meu bash

https://raw.githubusercontent.com/djdomi/php-install/master/run.sh

Referinţă

In ceea ce priveste acest ghid

hyjinx avatar
drapel ve
Da. Actualizarea Debian și apoi parcurgerea din nou a pașilor a fost trucul. Folosisem PHP 7.4, dar nu puteam să-l folosesc în continuare deoarece nu exista un modul php7.4-fpm de activat după dezactivarea php7.4. Așa că am revenit la PHP 7.3 și trecerea la HTTP/2 a fost finalizată.Singurul lucru care a rămas a fost să instalez toate extensiile PHP 7.3 care îmi lipseau. Toate site-urile de testare sunt acum testate pozitiv pentru HTTP/2. Iar scorul de viteză a paginii mobile a crescut cu 12 puncte în Google Page Speed ​​Insights după HTTP/2. Multumesc pentru ajutor. Nu pot să cred că nu m-am gândit să actualizez sistemul de operare.
djdomi avatar
drapel za
php7. 4-fpm ar trebui să fie disponibil după rularea scriptului meu, cu siguranță, chiar și eu cred că și php8

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.