Panoramica

HTTP/2 (noto anche come HTTP/2.0 e HTTP 2.0) è la seconda versione principale del protocollo di rete HTTP utilizzato dal World Wide Web. Ratificato a maggio 2015, HTTP/2 è stato creato per rispondere ad alcuni problemi critici delle prestazioni di HTTP 1.1. I vantaggi di questo protocollo vengono illustrati qui. Attualmente HTTP/2 è supportato dalla maggior parte dei browser Web principali.

Il supporto di HTTP/2 è disponibile per i clienti di Plesk a partire dalla versione 12.5.30, aggiornamento n. 28, e richiede l’ultima versione di nginx.

Nota: HTTP/2 è supportato solo per i siti SSL, pertanto i siti non SSL continueranno a funzionare con HTTP/1.x.

Come abilitare il supporto di HTTP/2 per il sito web

Assicurati che il server web nginx sia aggiornato alla versione più recente e sia funzionante. Ciò è possibile accedendo alle pagine Strumenti e impostazioni -> Componenti del server e Strumenti e impostazioni -> Gestione di servizi.

image 76462

image 76463

Accedere al server tramite SSH nella root e abilitare il supporto di HTTP/2 in Plesk mediante la seguente utility della riga di comando:

# plesk bin http2_pref enable

Durante il passaggio conclusivo, il server web nginx verrà impostato in modo da utilizzare il protocollo TLS con la crittografia più attuale e sicura, l’intera configurazione del server web verrà rinnovata e tutti i siti web dell’utente e dei clienti, dotati di supporto SSL, saranno trasferiti a HTTP/2.

Controllare l’output del comando per rilevare la presenza di errori o avvisi durante il passaggio a HTTP/2. Se vi sono problemi, consultare la sezione Risoluzione dei problemi di seguito.

Nota: per verificare che HTTP/2 sia abilitato su un dominio è possibile semplicemente utilizzare un servizio online quale https://tools.keycdn.com/http2-test.

Se si desidera tornare a HTTP 1.x e disabilitare HTTP/2, eseguire questo comando:

# plesk bin http2_pref disable

Supporto di ALPN

Per utilizzare correttamente HTTP/2 in Google Chrome, il server web di nginx deve supportare ALPN (Application-Layer Protocol Negotiation). Per ulteriori informazioni, consultare la documentazione su ALPN.

In Plesk il supporto di ALPN per il server web di nginx è disponibile per i seguenti sistemi operativi: CentOS 7, RedHat Enterprise Linux 7 e Debian 8.

Ciò significa che il protocollo HTTP/2 basato su Plesk è utilizzabile nei sistemi operativi citati in tutti i browser più recenti.

Risoluzione di problemi:

Se si riscontrano problemi al momento di abilitare il supporto di HTTP/2 per un sito web oppure se il risultato di verifica del sito mediante https://tools.keycdn.com/http2-test mostra che è abilitato solo il protocollo HTTP 1.x, attenersi alla procedura correttiva seguente.

  1. Assicurarsi che il supporto di SSL sia abilitato per il sito web nella sezione Impostazioni di hosting del dominio. HTTP/2 è supportato solo per i siti SSL, pertanto i siti non SSL continueranno a funzionare con HTTP /1.x. Si tratta di una restrizione del server web nginx e dei browser Web.

  2. Verificare che nginx sia abilitato:

    # plesk sbin nginxmng -s
    

    Abilitarlo se necessario:

    # plesk sbin nginxmng -e
    
  3. Verificare che il pacchetto OpenSSL presenti la versione 1.0.1 o successive:

    # rpm -qa | grep openssl
    openssl-1.0.1e-42.el6_7.4.x86_64.
    
  4. Verificare che non sia presente alcun modello di configurazione personalizzato in /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php. Se tale modello è presente, rimuoverlo e ricreare i file di configurazione:

    # plesk sbin httpdmng --reconfigure-all
    

    In alternativa, se non si desidera rimuovere le personalizzazioni, è possibile modificare il file /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php nel modo seguente.

    Trovare la riga simile a

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;
    

    E sostituirla con le due righe seguenti:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .
    ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;
    

    Dopo di che, eseguire il comando:

    # plesk bin http2_pref enable
    
  5. In caso di problemi di connessione SSL con HTTP/2 abilitato, assicurarsi che la direttiva ssl_ciphers nel file /etc/nginx/conf.d/ssl.conf o nel file personalizzato nginxDomainVirtualHost.php presenti il valore seguente:

    ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;
    
  6. Se il sito non funziona con alcuni browser dopo l’abilitazione di HTTP/2, ciò potrebbe significare che non si dispone delle codifiche e dei protocolli necessari per il supporto di HTTP/2. Ricorrere all’utility sslmng di Plesk per impostare l’elenco dei protocolli e delle codifiche TLS disponibili, dopo aver abilitato HTTP/2. Ad esempio, se si desidera utilizzare esattamente lo stesso elenco di codifiche di Plesk, il comando sarà il seguente:

    #plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
    

    La configurazione verrà memorizzata nel file /etc/nginx/conf.d/ssl.conf. È preferibile non modificare questo file manualmente.

  7. Se nessuna delle procedure di cui sopra è efficace, contattare il supporto tecnico di Plesk.