WP Migrate DB Pro (Italiano)
La configurazione di HTTPS in locale può essere complicata. Anche se riesci a lottare per inviare certificati autofirmati, ti ritroverai comunque con errori di privacy del browser. In questo articolo, illustreremo la creazione della tua Autorità di certificazione per i tuoi server locali in modo da poter eseguire i siti HTTPS in locale senza problemi.
Perché HTTPS localmente?
Perché non solo usi HTTP regolare localmente? Perché se il tuo sito di produzione è solo HTTPS e stai sviluppando localmente su HTTP normale, i tuoi ambienti di sviluppo e produzione non sono così simili come potrebbero essere. Ad esempio, il mio ambiente di sviluppo per questo sito (deliciousbrains.com) funziona come un server Ubuntu in una macchina virtuale VMware (VM) sul suo Mac. Il sito di produzione è un server Ubuntu in esecuzione su Linode con una configurazione quasi identica.
Sicuramente vuoi che il tuo ambiente di sviluppo rispecchi la produzione il più fedelmente possibile.
Quando non lo fa, inviti più problemi mostrato nella produzione che non è stato mostrato in dev. Eseguire HTTP quando il tuo sito di produzione è solo HTTPS è decisamente un rischio non necessario.
Tuttavia, provare a ottenere un certificato SSL funzionante con il tuo server locale fa schifo se non stai utilizzando uno strumento che lo gestisce per te come Valet.
Se hai mai provato a eseguire un sito HTTPS in locale, probabilmente hai visto qualcosa di simile al seguente in Chrome:
La soluzione era creare un certificato autofirmato e usarlo. MAMP Pro lo fa per te ed è stato il mio go-to per anni. Purtroppo non è più possibile. L’approccio moderno è diventare la tua Autorità di certificazione (CA)!
Come funziona
Per richiedere un certificato SSL da una CA come Verisign o GoDaddy, invia loro una firma del certificato Request (CSR) e ti danno un certificato in cambio che hanno firmato utilizzando il loro certificato radice e la chiave privata. Tutti i browser hanno una copia (o accedono a una copia dal sistema operativo) del certificato radice di Verisign, in modo che il browser possa verificare che il tuo certificato sia stato firmato da un’autorità di certificazione attendibile.
Ecco perché quando generi un certificato firmato il browser non si fida di esso. È autofirmato. Non è stato firmato da una CA. Ma possiamo generare il nostro certificato radice e la nostra chiave privata. Quindi aggiungiamo il certificato radice a tutti i dispositivi che possediamo solo una volta, quindi tutti i certificati che generiamo e firmiamo saranno intrinsecamente affidabili.
Diventare una (piccola) autorità di certificazione
È un po ‘ridicolo quanto sia facile generare i file necessari per diventare un’autorità di certificazione. Occorrono solo due comandi. Innanzitutto, generiamo la nostra chiave privata:
Ti verrà richiesta una passphrase, che consiglio di non saltare e di tenere al sicuro. La passphrase impedirà a chiunque ottenga la tua chiave privata di generare un proprio certificato radice. L’output dovrebbe assomigliare a questo:
Quindi generiamo un certificato radice:
Ti verrà chiesta la passphrase della tua chiave privata (che hai appena scelto) e un sacco di domande. Le risposte a queste domande non sono così importanti. Si presentano quando guardi il certificato, cosa che non farai quasi mai. Suggerisco di rendere il nome comune qualcosa che riconoscerai come certificato radice in un elenco di altri certificati. Questa è davvero l’unica cosa che conta.
Ora dovresti avere due file: myCA.key (la tua chiave privata) e myCA.pem (il tuo certificato radice ).
🎉 Congratulazioni, ora sei un CA. Più o meno.
Per diventare una vera CA, è necessario ottenere il certificato di origine su tutti i dispositivi del mondo. Cominciamo con quelli che possiedi.
Installazione del tuo certificato radice
Dobbiamo aggiungere il certificato radice a qualsiasi laptop, desktop, tablet e telefono che accederà ai tuoi siti HTTPS . Questo può essere un po ‘fastidioso, ma la buona notizia è che dobbiamo farlo solo una volta. Una volta che il nostro certificato radice è su ogni dispositivo, sarà valido fino alla scadenza.
Aggiunta del certificato radice al portachiavi macOS
tramite la CLI
Tramite l’interfaccia utente
- Apri l’app portachiavi macOS
- Vai a File > Importa elementi …
- Seleziona il file della tua chiave privata (ad es. MyCA.pem)
- Cerca quello a cui hai risposto come nome comune sopra
- Fai doppio clic sul certificato di origine nell’elenco
- Espandi la sezione Attendibilità
- Modifica la casella Quando si utilizza questo certificato: seleziona “Sempre Trust “
- Chiudi la finestra del certificato
- Ti chiederà di inserire la password (o di scansionare il dito), fallo
- 🎉 Festeggia!
Aggiunta del certificato radice a iOS
Se desideri aggiungere il certificato radice ai tuoi dispositivi iOS, puoi farlo abbastanza facilmente seguendo questi passaggi:
- Invia a te stesso il certificato radice per e-mail in modo da poterlo accedere sul tuo dispositivo iOS
- Fai clic sull’allegato nell’e-mail sul tuo dispositivo iOS
- Vai all’app delle impostazioni e fai clic su “Profilo scaricato” in alto
- Fai clic su Installa in alto a destra
- Una volta installato, premi chiudi e torna alla pagina Impostazioni principale
- Vai a “Generale” > “Informazioni”
- Scorri fino in fondo e fai clic su “Impostazioni attendibilità certificato”
- Abilita il tuo certificato radice in “ABILITA FIDUCIA COMPLETA PER CERTIFICATI DI ROOT”
Creazione di certificati firmati CA per il tuo Siti di sviluppo
Ora che siamo una CA su tutti i nostri dispositivi, possiamo firmare i certificati per tutti i nuovi siti di sviluppo che necessitano di HTTPS. Innanzitutto, creiamo una chiave privata:
Quindi creiamo un CSR:
Riceverai tutte le stesse domande che hai fatto sopra e, di nuovo, le tue risposte non contano. In effetti, contano ancora meno perché non guarderai questo certificato in un elenco accanto ad altri.
Successivamente creeremo il certificato utilizzando il nostro CSR, la chiave privata CA, il certificato CA e un file di configurazione, ma prima dobbiamo creare quel file di configurazione.
Il file di configurazione è necessario per definire l’estensione Subject Alternative Name (SAN) che è definito in questa sezione (cioè estensione) del certificato:
Il file di configurazione (dev.deliciousbrains.com. ext) conteneva quanto segue:
eseguiremo il comando openssl x509
perché da quello che ho capito, il comando x509 è necessario per eseguire la firma con il certificato radice e la chiave privata. Ho trovato questo file di configurazione di esempio su Stack Overflow e sembra funzionare.
Ora eseguiamo il comando per creare il certificato:
Ora posso configurare il mio server web con la chiave privata e il certificato. Se stai utilizzando un server Linux, puoi utilizzare le istruzioni nella nostra serie Installa WordPress su Ubuntu 20.04 Se stai utilizzando MAMP, puoi selezionare il certificato e i file chiave utilizzando l’interfaccia utente:
Sfortunatamente MAMP (testato con la versione 5.7) non crea certificati SSL con una CA, quindi per ora dovrai utilizzare il metodo manuale.
Per qualsiasi altro sito di sviluppo, possiamo semplicemente ripetere l’ultima parte della creazione di un certificato, non dobbiamo creare una nuova CA per ogni sito.
Shell Script
Per rendere le cose ancora più veloci, ecco un pratico script di shell che puoi modificare per i tuoi scopi:
Conclusione
Quindi il gioco è fatto, come diventare il tuo certificato locale autorità per firmare i tuoi certificati SSL locali e utilizzare HTTPS sui tuoi siti locali. Si spera che questo elimini il temuto messaggio “La tua connessione non è privata” per te in Chrome.