Da non www a www senza errore di certificato

Ehi community,

Attualmente ho il seguente problema e sarei davvero felice se qualcuno potesse aiutarmi a trovare l’approccio giusto.

  1. Ho installato discourse su un server Ubuntu 21.10 su Vultr
  2. Ho utilizzato la configurazione predefinita e ho già creato un certificato Let’s Encrypt (per www.example.com) durante l’installazione

Il mio obiettivo è che il mio forum sia raggiungibile solo tramite www → www.example.com e non example.com

Situazione attuale:
http://example.com reindirizza correttamente (301) a https://www.example.com
http://www.example.com reindirizza correttamente (301) a https://www.example.com
https://example.com genera un errore di certificato e non viene reindirizzato al corretto https://www.example.com (il certificato è stato emesso per www.example.com e non per example.com)

Qual è il miglior approccio per far reindirizzare https://example.com a https://www.example.com e come posso raggiungere il mio obiettivo?

Saluti,
Elmi

1 Mi Piace

Ho seguito questo consiglio e ho aggiunto una riga al mio app.yml:

Anche se non mi dispiace se le persone mi trovano sul dominio principale o sul sottodominio www, quindi non ho provato con i reindirizzamenti.

2 Mi Piace

Attenzione ai contenuti duplicati nei motori di ricerca.

3 Mi Piace

Questa è un’area in cui non sono molto ferrato. :slightly_smiling_face: Quale sarebbe il modo consigliato? Attualmente ho un record A sia per il dominio che per il sottodominio www che risolvono al mio droplet di Digital Ocean.

2 Mi Piace

Il modo più semplice è usare www.forcewww.com per questo. (Disclaimer: questo è il mio servizio)

4 Mi Piace

Grazie mille per il tuo feedback @JammyDodger. Ci proverò anche se sembra che si occupi di un problema leggermente diverso. Ma forse funzionerà.

È buona norma avere una sola versione del tuo sito. Duplicate Content: Why does it happen and how to fix issues - Moz

2 Mi Piace

Questo reindirizzamento è così banale su qualsiasi server web e una ricerca su Google rivela come farlo. Perché è diverso qui?

2 Mi Piace

Sono abbastanza sicuro che se richiedi entrambi i certificati, verrà reindirizzato come desideri. La soluzione forcewww.com è più semplice.

Perché è all’interno di un container Docker e nessuna delle soluzioni all’interno dell’host che trovi altrove sarà probabilmente utile.

2 Mi Piace

Solo un breve aggiornamento per farvi sapere cosa ha funzionato per me.

Ho provato, ma questo non ha funzionato per me. Sembrava che non fosse stato rilasciato alcun certificato aggiuntivo.

Ho anche provato a risolvere il mio problema seguendo questo suggerimento, ma anche questo non ha funzionato per me.

L’unica cosa che ha risolto il mio problema finora è stato seguire le istruzioni qui http://www.forcewww.com/

Tuttavia, penso che questa non sia ancora una soluzione desiderabile, poiché si basa su un servizio esterno. Naturalmente, è gratuito, ma dovrai trovare una nuova soluzione una volta che questo servizio sarà fuori uso.
Spero che tu non mi fraintenda @michaeld, è davvero una soluzione bella e facile quella che offri e la apprezzo molto.

Sarebbe una cosa fantastica, se potessi decidere durante l’installazione standard di utilizzare solo una versione www o non www per renderci la vita un po’ più facile :slight_smile:

2 Mi Piace

Anche se non l’ho testato nel mese appena trascorso, sono abbastanza sicuro che funzioni. Se il tuo DNS non era configurato correttamente e l’hai eseguito molte volte, allora sei stato limitato.

Intendi “e richiedere un certificato con entrambi i nomi host?” È molto difficile. La probabilità che ciò causi problemi a molte persone che non sanno come configurare il DNS in quel modo è molto, molto alta.

2 Mi Piace

Se crei un certificato sia per la versione apex che per la versione www, avrai coperto entrambi. :smiley Come hai affermato, il certificato non include il tuo dominio apex… da qui l’errore.

I tuoi reindirizzamenti dovrebbero essere:

  • http://example.comhttps://example.com
  • http://www.example.comhttps://www.example.com.
  • Quindi reindirizza https://example.comhttps://www.example.com (il tuo dominio preferito dichiarato).

Quindi, indipendentemente da chi digita il dominio apex o la versione www, atterrerà sul tuo https://www.example.com senza errori. La best practice è includere sia l’apex che la versione www sul tuo certificato. Assicurati solo che il tuo certificato modificato/nuovo sia quello servito dal tuo server e non quello vecchio.

Capisco. E ora che l’hai menzionato, inizierò a ricordarmene: questo è stato il secondo motivo per cui ho messo Discourse dietro un Nginx “normale”. Il primo motivo è stata la necessità di effettuare qualche filtro. Beh, la mia soluzione non è niente di speciale o tecnicamente impegnativa, ma non è così popolare in questo circolo.

Devo dire che Docker non è una soluzione molto user-friendly se una cosa così banale deve essere fatta utilizzando un servizio web di terze parti. Altrimenti Docker deve essere molto utile, immagino, a meno che non diventi così popolare.

2 Mi Piace

Grazie per il consiglio @pfaffman. Ci riproverò durante il fine settimana.

E riguardo al secondo argomento. Capisco il tuo punto, ma potrebbe essere qualcosa come un’impostazione avanzata o opzionale, perché è davvero fondamentale che lo stesso contenuto sia raggiungibile solo tramite un dominio.

2 Mi Piace

In realtà non lo è (a meno che Discourse stesso non funzioni). Ma se ti riferisci alla SEO e a Google, un problema di sottodominio non è così grave da tempo. Google può conviverci, perché c’è solo un dominio: uno è un FQDN “stub” e uno con www è quello reale.

1 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.