• User

    Come funziona l'SSL su Joomla?

    Ciao a tutti! Domanda tecnica: come funziona l'opzione per forzare l'SSL su Joomla?
    Ossia: quando attivo l'opzione che cosa succede esattamente? Visto che l'htaccess non viene toccato (funziona anche senza rinominare htaccess.txt se non erro) immagino che siano richieste che vengano fatte a livello PHP... ma questo vuol dire che quando viene chiamata una pagina, joomla in automatico ricarica la stessa pagina in HTTPS?
    Cosa vuol dire in termini di prestazioni? E' meglio usare questa opzione o scrivere due righe a mano nell'htaccess?
    Oppure la differenza è talmente minima che cambia poco?


    andrea.sc 1 Risposta
  • Moderatore

    @jabba vado a memoria, non ho verificato ma se non ricordo male viene modificato il configuration.php.

    A livello di prestazioni non ho mai notato nessuna differenza onestamente. 😉


    jabba 1 Risposta
  • User

    @andrea-sc ha detto in Come funziona l'SSL su Joomla?:

    @jabba vado a memoria, non ho verificato ma se non ricordo male viene modificato il configuration.php.

    A livello di prestazioni non ho mai notato nessuna differenza onestamente. 😉

    Sisi, viene configurato il paramentro "force_ssl", ma mi chiedevo proprio a livello di programmazione che cosa andasse a modificare quel parametro... purtroppo non conosco così bene il core di joomla per andare a spulicarlo quindi mi chiedevo (più che altro per siti molto grandi e molto pesanti) se valesse la pena usare altri metodi rispetto a quello standard di Joomla


  • Moderatore

    Ciao jabba,
    non ti saprei dire con precisione dove interviene l'opzione ma usala, è stabile ed ottimizzata meglio di qualsiasi altra cosa tu possa fare. Non incide sulle prestazioni.

    Se vuoi qualche info in più puoi leggere questo:
    www. joomla. it/ faq-joomla-3/ 443-configurazione/ 8582-come-configurare-il-sito-joomla-in-https.html
    (togli gli spazi nel percorso 🙂 )

    Maurizio


    jabba 1 Risposta
  • User

    Grazie @ziopal per la risposta. Leggendo l'articolo che hai postato ad un certo punto c'è scritto:

    Altro accorgimento facoltativo potrebbe essere quello di modificare anche il file .htaccess (se il sito è su server Apache) >inserendo anche questa regola appena sotto a RewriteEngine On

    RewriteCond %{HTTPS} OFF
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    come mai? Ci sono casi particolari in cui la configurazione force_ssl di joomla non basta?
    Grazie mille ancora


  • Moderatore

    Ciao jabba,
    probabilmente è il retaggio delle prime versioni in cui io stesso completavo il reindirizzamento con la modifica all'htaccess, ora non lo metto più e non ho mai avuto problemi.
    Maurizio ZioPal


  • Miglior Risposta
    Moderatore

    Allooooraaaaa

    @jabba la risposta è ... MAGIA! 😂

    Scherzi a parte! Provo a spiegarmi, senza che qualche dev mi uccida! 😇

    Joomla internamente ha un Router che oltre a gestire come vengono create le URL ne gestisce eventuali redirect.

    Quando l'impostazione di forzatura del SSL è su OFF il router di Joomla "ignora" il protocollo http/https.
    Infatti è un comando di "forzatura".
    In questo stato sarà SOLO l'htaccess o l'utente (eh si) a decidere il protocollo.

    Se nella barra del browser metto http:// tutta la navigazione resterà sotto questo protocollo.
    Se scriverò io https:// continuerà tutto sotto HTTPS perché le url dentro Joomla (a meno di forzatura) sono relative al HTTP_HOST (quello che si usa con PHP tipo $_SERVER['HTTP_HOST']).

    Poi che succede: se metto io invece in HTACCESS un comando per forzare o HTTP to HTTPS, Joomla non farà nulla e si comporterà come indicato sopra.
    Se ho messo nell'htaccess il comando che redireziona http->https, quando nella barra del browser io scriverò http:// sarà l'htaccess a provocare un redirect 301 verso https://.

    Mettiamo che ora attivo Forza SSL (su tutto il sito ovviamente).
    Joomla con il suo router ora comincerà a considerare il protocollo degli url.
    Se nell'htaccess non ho nulla, e scrivo http:// nella barra sarà Joomla (a livello PHP tramite il suo router) a riscrivere in https:// il tutto, ovviamente generando un 301 in quel caso specifico.

    Se metto nell'htaccess il comando http->https e scrivo nella barra del browser http:// ... che succede?
    L'htaccess ha priorità su qualsiasi applicativo, essendo un file del server di fatto, quindi provocherà un redirect che mi farà navigare in https://.
    Essendo in Joomla attiva la forzatura in HTTPS, Joomla vedrà che il protocollo è quello giusto (grazie all'htaccess) e quindi... non farà nulla 🙂

    *Quindi perché, e spesso lo faccio anche io, si consiglia sia di attivare quell'impostazione, sia di mettere un buon comando per l'http-to-https in htaccess?

    Se qualche plugin scadente genera URL "schivando" il router di Joomla, ho il rischio che il protocollo resti tale e quale a quello inserito, indipendentemente dal Forza SSL.
    Oppure metti anche di avere assieme a Joomla una cartellina nella root dove c'è altro dentro: li non c'è un CMS con un router che ti anticipa e regolare http-to-https, quindi serve per forza l'htaccess ben regolato.
    *

    Quindi, che usi htaccess, che usi la forzatura, che li usi entrambi... se proverai a chiamare una url con http, tutto il sistema farà una singola riscrittura per correggere la url.

    A meno di errori nell'htaccess (tipo qualche catena di redirect) il comportamento sarà assolutamente "standard" per quando riguarda la questione http-to-https alla pari di altri CMS. Male che vada quindi un semplice 301 correttissimo lato SEO 🙂

    In termini di prestazioni velocistiche, ovviamente il comando in htaccess è più veloce perché non richiede di mettere in moto nulla a livello di PHP.

    Non ho mai fatto bench approfonditi su siti ad alto traffico, ma il Force SSL è di fatto un comando "user friedly" per non dover mettere le mani nell'HTACCESS 🙂


    ZioPal 1 Risposta
  • User

    top, grazie mille! Mi sono sempre chiesto quale fosse il metodo migliore per gestire il tutto, evitando reindirizzamente inuitili e, di conseguenza, un aumento del tempo di caricamento.
    Grazie per la spiegazione!


  • Moderatore

    @simbus82 ha detto in Come funziona l'SSL su Joomla?:

    ........... In termini di prestazioni velocistiche, ovviamente il comando in htaccess è più veloce perché non richiede di mettere in moto nulla a livello di PHP.

    Non ho mai fatto bench approfonditi su siti ad alto traffico, ma il Force SSL è di fatto un comando "user friedly" per non dover mettere le mani nell'HTACCESS 🙂

    Quindi pur non essendoci particolari differenze di fatto converrebbe usare l'Htaccess, giusto?


    jabba simbus82 2 Risposte
  • User

    @ziopal da quel che ho capito si, anche se penso che la differenza di tempistiche sia assolutamente trascurabile (mi piacerebbe fare dei test comparativi su siti molto grandi e pesanti ma non saprei come fare..)


    simbus82 1 Risposta
  • Moderatore

    @ziopal Si, ma io, non avendo evidenze di rallentamenti metto sempre al sicuro tutto.

    Se guardiamo qua https://github.com/joomla/joomla-cms/search?q=force_ssl&type=code vediamo come il force_ssl influisca davvero su tante parti di Joomla.
    Non che non mi fidi, ma per sicurezza io lo attivo e poi imposto per bene anche l'htaccess.

    Io di solito usavo queste righe, scommentando e compilando quello che serve, c'è anche il pezzo per non-www to www.
    Poi uso altre regole se devo gestire eventuali sottodomini o domini alias.

    ###
    # Redirect all "not correct" domain to www with https
    # (is not important if comes with or without https):
    # RewriteCond %{HTTP_HOST} !^www.mysite.it$ 
    # RewriteRule ^(.*)$ https://www.mysite.it/$1 [L,R=301]
    
    # Redirect all non-ssl to ssl.
    # RewriteCond %{HTTPS} off
    # RewriteRule ^(.*)$ https://www.mysite.it/$1 [R=301,L]
    ###
    

    ZioPal 1 Risposta
  • Moderatore

    @jabba credo siano da valutare le casistiche.

    Se nell'htaccess ho 10.000 redirects, Apache fa il parsing di tutte le righe prima di arrivare a far partire l'index.php. E lo fa per ogni santissima chiamata ad ogni pagina.
    Probabilmente se quei 10.000 redirects li potessi riassumere con uno script php che viene lanciato solo quando necessario, e che può pure finire in cache, sicuramente avrei dei pro a livello di prestazioni rispetto l'htaccess.

    Se devo fare un non-www to www o un http-to-https, forse conviene invece in htaccess.


  • Moderatore

    @simbus82 ha detto in Come funziona l'SSL su Joomla?:

    Io di solito usavo queste righe, scommentando e compilando quello che serve, c'è anche il pezzo per non-www to www.

    😀 😀
    anche per me era un copia e incolla per la gestione di www ed HTTPS, però ad un certo punto ho smesso di prendere la parte HTTPS.