Se vuoi saperne di più su Heroku puoi trovare un articolo a questo indirizzo.
Register.it
Register.it è un servizio che mette a disposizione hosting, dominio, mail ed altro. Sul mio blog io sto utilizzando SiteGround al momento ed infatti non è di questo che voglio parlarti.
Lo scopo per il quale personalmente ho utilizzato Register.it è che volevo comprare un dominio “qualcosa.it” e poter avere 5 indirizzi email senza perdere troppo tempo (volevo anche provare qualcosa che non avevo ancora mai utilizzato!).
Lo scopo reale poi era connettere i DNS di Heroku al dominio su Register.it.
Heroku
Per quanto riguarda Heroku ti dico brevemente che è un PaaS (Platform as a Service) e che ti permette di effettuare il deploy delle applicazioni che costruisci (nel mio caso single page application ReactJS + Java + database).
Se vuoi saperne di più (e fidati che c’è molto di più da sapere!!) ho già scritto un articolo al riguardo che puoi trovare quì.
CloudFlare
CloudFlare è invece una sorta di CDN 2.0. Ha data center distribuiti in tutto il mondo, sa come riconoscere e bloccare un attacco ad un tuo sito, è veloce grazie ad un caching perfettamente ottimizzato ed offre certificati SSL.
E’ interessante questa loro risposta sul blog alla domanda “cos’è CloudFlare” che puoi trovare a questo indirizzo.
Cosa volevo fare con Register.it e CloudFlare?
Avevo la necessita di comprare un dominio (Register.it) ed attaccarci la single page app disponibile in produzione su Heroku. In più volevo un servizio che offrisse contenuto rapidamente agli utenti e protetto (CloudFlare).
Prima ho pensato di configurare Register.it per utilizzare i DNS di Heroku. Missione riuscita per il sotto dominio www, mentre per il dominio principale niente da fare. Heroku ha come punto di forza quello di rendere raggiungibile la tua applicazione su IP differenti. Non esistendo un IP fisso non potevo assegnare un ip al dominio (record A). Quindi inizialmente ho utilizzato la loro soluzione che chiamano “redirect” in cui viene impostato un frame in una pagina HTML (navigazione non fattibile però!).
Dunque, prima di andare avanti ho voluto creare i certificati SSL ed ho utilizzato Let’s Encrypt tramite https://gethttpsforfree.com.
Dunque mappare i certificati senza accesso diretto ad un server voleva dire includere un file nell’applicazione. Il file per il dominio principale l’ho inserito tramite file manager di Register.it convalidando quindi la proprietà del dominio. Il sotto dominio www invece utilizzava ormai i DNS di Heroku. Quindi ho rilasciato su Heroku un’app collegata a quel dominio che contenesse quel file e non utilizzasse il routing di React.
Beh, subito ho realizzato che stavo facendo un bel macello. Prima di tutto sarebbe stato meglio convalidare la proprietà del sotto dominio www prima di utilizzare i DNS di Heroku. E poi, dico seriamente, un bel macello tutto questo giro. Pannello di controllo su Register.it lentissimo, il “redirect” del dominio principale non sarà mai quello che cerco e tutto il resto che ho già raccontato.
Decido quindi di utilizzare CloudFlare. Un po’ perché tanto volevo già utilizzarlo, un po’ perché avevo la necessità che ci fosse qualcosa con lo scopo di far andare gli utenti sia su miosito.it che su www.miosito.it e di poter navigare verso www.miosito.it/registrazione, www.miosito.it/login, ecc. Per essere precisi avevo bisogno di qualcosa che non utilizzasse frame per mostrare il contenuto della mia single page app su Heroku. Allo stesso tempo non volevo re-indirizzare l’utente all’indirizzo che fornisce Heroku. Infine volevo un certificato SSL più serio e con durata maggiore di 90 giorni (eh sì, con Let’s Encrypt è tutto gratuito, ma se ti scordi di rinnovare il certificato poi sono brutte figure, inoltre devi generarti ogni volta a mano o tramite uno script che ti crei appositamente il certificato SSL..).
Ottenere quanto volevo non è stato facilissimo. Register.it è un po’ lento nell’aiutarti, probabilmente gli può dare fastidio che non spendi 300 euro di certificato SSL Wildcard comprato da loro.
In ogni caso, una volta comprato il dominio su Register.it sei pronto ad eseguire questi passi per utilizzare Register.it e CloudFlare insieme:
- Crea un account su CloudFlare
- Imposta i dati dell’indirizzo che vuoi utilizzare con CloudFlare (è il dominio che hai comprato su Register.it)
- Controlla nel tab DNS che CloudFlare ha reperito le informazioni corrette
- Elimina il record A se come me hai come scopo quello di utilizzare i DNS di Heroku
- Imposta il record CNAME per i DNS di Heroku sia su qualcosa.it che sul sotto dominio www
- Dunque entra in overview sempre su CloudFlare
- Troverai 2 record relativi al name server
- Entra in Register.it
- Entra nel pannello di controllo
- Clicca su Dominio & DNS
- Dunque clicca su Configurazione DNS nel riquadro azzurro in basso
- Infine seleziona la voce “Avvia l’operazione di cambio DNS”
- Inserisci i due name server di CloudFlare che andranno a sostituire quelli di Register.it
- L’ip relativo ai name server di CloudFlare lo trovi eseguendo da terminale il comando: ping [name_server]
- Dunque torna su CloudFlare ed entra in overview
- Clicca su Check Name Servers
Normalmente dovrai aspettare almeno 2 o 3 ore prima che ti arrivi la mail di successo dell’operazione.
Errore 502
Se una volta che l’operazione è riuscita hai ancora problemi per via dell’errore 502 probabilmente hai un problema di certificati SSL. Entra nella sezione Crypto di CloudFlare ed imposta la voce SSL su Flexible.
Mi raccomando assicurati dopo qualche minuto che il tutto funzioni! Dopo di che cerca di indagare il problema del certificato SSL. Potrebbe essere dovuto al fatto che il certificato del sito che mostra CloudFlare utilizzi una cifratura differente da quella che utilizza CloudFlare in sé.
E’ possibile anche che il sito non abbia contenuto sicuro o utilizzi un certificato “debole”. Se vuoi saperne di più sui livelli di SSL impostati da CloudFlare segui questa guida.
Conclusione
Ho scritto questo articolo perché in rete non si trovava nulla di particolare. Quindi, anche se questo problema viene affrontato da 2 persone all’anno ho pensato che dovessi comunque scrivere un articolo per aiutarli 🙂 .
Ti vuoi iscrivere alla newsletter per non perderti nuovi articoli? Mando da 1 a 4 mail al mese ricapitolando dove siamo arrivati con ogni guida. Con la newsletter hai anche accesso a libri ed ebook gratuiti, così come a coupon Udemy ? .
Per dubbi o domande scrivimi nei commenti ? .
Se ti è piaciuto l’articolo seguimi su Facebook e Twitter oppure rimani sempre aggiornato con la newsletter (da 1 a 4 mail al mese!).
Grazie a register sto meditando il suicidio oggi…cerco di cambiare i dns, per attivare una CDN e dopo aver cercato in tutti i modi di farmi cambiare idea come se il mio sito esplodesse subito dopo aver inserito i nuovi NS, register mi chiede i nuovi ip…e io non capisco dove andarli a prendere 🙁
Ciao 🙂
Ti consiglio di guardare la guida di CloudFlare, ma non fare prove continue sperando che prima o poi funzioni. Segui quanto ti dicono e poi aspetta qualche ora per vedere se il tuo sito è online.
A me ci sono volute circa 3 ore di attesa. Ormai sapevo di aver seguito le guide alla perfezione e se non avesse funzionato avrei cambiato sicuramente gestore (Register dà messaggi di errore a caso a volte!)
Ciao Paolo, intanto grazie per l’articolo.
Register in fase di modifica DNS avvisa in questo modo: “L’impostazione dei DNS esterni comporterà la disattivazione di tutti i servizi aggiuntivi legati al dominio.”
Vuol dire che mi disattiverà le mail se effettuo questa modifica?
Grazie e saluti
Carlo
Ciao Carlo,
Personalmente non mi sono state disattivate le mail dopo le modifiche che ho fatto. Potrebbero però aver cambiato qualche policy di utilizzo quindi ti consiglio di contattare la loro assistenza.
Saluti,
Paolo.