SSL non è valido per www.domain.com

Il mio SSL non è valido per www.domain.com ma lo è per domain.com

Come posso renderlo sicuro con www? Ho l’SSL gratuito che si ottiene con l’auto-hosting di Discourse.

Non puoi.

Anche Let’s Encrypt è gratuito, quindi :man_shrugging:

Sì, so che è gratuito, ma qual è un metodo per crittografare www?

Dato che lo ho impostato per puntare a domain.com ma appare “questo sito non è sicuro” quando si passa attraverso www

Poiché è creato solo per apex, o ti stai riferendo ad esso in modo errato ovunque tu stia cercando di terminarlo.

Discourse crea SSL quando viene installato. Ed è di Lets Encrypt. Quindi forse dovresti chiedere a quale azienda te l’ha dato ora.

Non capisco del tutto perché preoccuparsi.

Perché quando visiti www.mysite.com, viene visualizzato un messaggio del tipo “Questo sito non è sicuro, desideri continuare”, quindi reindirizza alla versione SSL (https). Chiederò a Let’s Encrypt eventuali soluzioni.

Devi crearlo anche per www.

Se lo crei manualmente, devi usare qualcosa come certbot certonly --nginx -d domain.com -d www.domain.com. In pratica ogni sottodominio ne ha bisogno di uno proprio.

Non so come sia ora, ma i certificati wildcard (uguali per apex e tutti i sottodomini) non funzionavano molto bene quando creati usando Let’s Encrypt.

Ma di nuovo. Non devi preoccuparti di questo, perché Discourse lo fa per te — tranne se le impostazioni del tuo DNS sono sbagliate o per qualche altro motivo il tuo forum non è raggiungibile.

Mi dispiace, non capisco esattamente, il DNS funziona bene, suppongo, è solo un reindirizzamento di URL.

www → https://domain.com
questa parte dice

www.domain.com non supporta una connessione sicura
Stai vedendo questo avviso perché questo sito non supporta HTTPS

Ma quando si usa domain.com va bene.

Dovrei provare certbot certonly --nginx -d domain.com -d www.domain.com?

Non so cosa dovresti provare, non so nemmeno cosa stai cercando di fare, come e dove.

Tutto quello che cerco di dire è:

  • hai bisogno di certificati diversi per apex e www, o i tuoi siti nel web server sono configurati in modo errato
  • non devi fare nulla perché Discourse crea il certificato SSL per te quando configuri un forum

C’è un argomento su questo:

4 Mi Piace

Grazie.

after_ssl:
   # tell letsencrypt what additional certs to get
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d site.com -d www.mysite.com --keylength"
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--fullchainpath/
        to: "-d site.com -d www.mysite.com --fullchainpath"

Quindi questo dovrebbe far puntare www a mysite.com? O è il contrario?

No. Ti dà due certificati. Uno per apex, uno per www.

1 Mi Piace

Se il tuo hostname è site.com allora hai fatto giusto. E sembra che sia così.

Generalmente si consiglia che il tuo sito sia su www.site.com e che il dominio apex reindirizzi a www. Quello che farei è cambiare il tuo hostname in www.site.com e fare il contrario.

Penso che dia un certificato valido per entrambi.

4 Mi Piace

Ciao, sto aggiornando questo perché pensavo di averlo risolto ieri, ma ora accedendo a www.mysite.com ricevo ancora un reindirizzamento non SSL.

L’apice ha un SSL, solo non www.

Anche se ho applicato questo nel mio app.yml in hooks:

after_ssl:
   # dire a letsencrypt quali certificati aggiuntivi ottenere
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d mysite.com -d www.mysite.com --keylength"
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--fullchainpath/
        to: "-d mysite.com -d www.mysite.com --fullchainpath"

Stai seguendo le istruzioni su Set up Let’s Encrypt with multiple domains / redirects?

Se inserisci www.mysite.com nel modello nell’OP, genera questo:

after_ssl:
   # tell letsencrypt what additional certs to get
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d www.mysite.com --keylength"
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--fullchainpath/
        to: "-d www.mysite.com  --fullchainpath"
        global: true

Quindi lo stai facendo nel modo sbagliato.

Ah, quindi non è digitato manualmente.

  after_ssl:
   # tell letsencrypt what additional certs to get
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d =domain2= --keylength"
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--fullchainpath/
        to: "-d =domain2=  --fullchainpath"
        global: true

Quindi devo farlo e sostituire domain2 con mysite.com, quindi ricompilare l’app?

Se inserisci il tuo nome di dominio nel campo, riempirà automaticamente =domain2= con il dominio in modo da poter copiare/incollare quel blocco.

Sì.

1 Mi Piace

Ehi, ho appena fatto questo, sfortunatamente stesso risultato. Questo è quello che ho fatto ma con il mio dominio invece.

Nessuno spazio bianco, formattazione corretta.

  after_ssl:
   # tell letsencrypt what additional certs to get
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--keylength/
        to: "-d =mysite.com= --keylength"
    - replace:
        filename: "/etc/runit/1.d/letsencrypt"
        from: /--fullchainpath/
        to: "-d =mysite.com= --fullchainpath"
        global: true

Poiché non hai risolto questo problema, ho deselezionato la casella “risolto”.

Se hai eseguito molte ricostruzioni con l’altra stanza, potresti essere limitato dalla frequenza.

C’è la possibilità che il modello sia cambiato di nuovo e questo non funzioni più, ma ne dubito.

Le soluzioni per la limitazione della frequenza sono aspettare una settimana o aggiungere un terzo sottodominio.

Puoi entrare nel container ed eseguire un comando per richiedere l’URL e vedere qual è l’errore, ma non ricordo quale sia. Potresti essere in grado di vedere un errore se guardi

 docker logs app
1 Mi Piace

Ah, l’ho trovato!

Impossibile emettere per \\\"=mysite.com=\\\": il nome di dominio contiene un carattere non valido

Quindi rimuovo i = perché erano per una variabile?

Hai usato il modulo nell’altra pagina come ti ho suggerito e hai inserito il tuo hostname nello spazio vuoto?

1 Mi Piace