Che ne dici di avere il tuo ambiente di sviluppo locale accessibile su HTTPS senza avviso SSL?
Come sviluppatore, potresti dover lavorare su più progetti, client e applicazioni web. Uno dei prerequisiti per lo sviluppo di applicazioni Web è testare i siti Web localmente sul browser durante la fase di sviluppo. Molto alte probabilità che l’applicazione che stai sviluppando sia protetta con certificato SSL / TLS in un ambiente di produzione.
Essere d’accordo?
Che ne dici se devi testare alcune funzionalità sfruttando l’API di terze parti che richiede che l’origine sia https: //?
Puoi dire un certificato autofirmato e non c’è niente di sbagliato in questo. Ma hai provato ad accedere al sito implementato cert autofirmato? Riceverai comunque un avviso di avviso su Chrome e altri browser.
Vedi il Non sicuro distintivo?
Non buono, giusto?
Il modo migliore per avere un certificato SSL valido sull’ambiente di sviluppo è gestire la propria CA e il suo possibile con mkcert. Un facile da implementare che ti consente di avere un certificato valido sul seguente indirizzo web di sviluppo locale.
- example.com
- * .example.com
- example.test
- localhost
- 127.0.0.1
- :: 1
Puoi implementare mkcert su macOS, Windows, CentOS, Ubuntu e altri sistemi operativi basati su UNIX. Il seguente esempio è di Ubuntu.
Innanzitutto, installiamo gli strumenti del servizio di sicurezza della rete che dispone di un certificato per la gestione del database dei certificati.
apt-get update
apt-get install libnss3-tools
Potrebbe anche essere necessario assicurarsi che la birra sia installata sul tuo server. In caso contrario, installare utilizzando il seguente comando.
apt-get install linuxbrew-wrapper
e, infine, installa mkcert usando brew.
brew install mkcert
Nota: per installare usando brew non dovresti essere root. e viene installato in /home/$USER/.linuxbrew/bin/mkcert
Dove $ USER è il nome utente che hai usato per installare
Ora è il momento di installare la CA locale nel truststore del sistema.
[Email protected]: ~ / mkcert # /home/chandan/.linuxbrew/bin/mkcert -install
Utilizzando la CA locale all’indirizzo "/root/.local/share/mkcert" ✨
La CA locale è ora installata nel truststore del sistema! ⚡️
[Email protected]: ~ / Mkcert #
E, successivamente, generare un certificato per l’ambiente di sviluppo. Supponiamo che tu abbia il tuo sito Web su example.com e puoi utilizzare il seguente comando per ottenere il certificato e il file chiave.
[Email protected]: ~ / mkcert # /home/chandan/.linuxbrew/bin/mkcert example.com
Utilizzando la CA locale all’indirizzo "/root/.local/share/mkcert" ✨
Creato un nuovo certificato valido per i seguenti nomi
– "example.com"
Il certificato è a "./example.com.pem" e la chiave a "./example.com-key.pem" ✅
[Email protected]: ~ / Mkcert #
Grande! ora ho un certificato valido e il suo file chiave pronto per l’uso sul mio Nginx, Apache o altri server web.
Facciamo un esempio di un server HTTP Apache. Se non lo è già, abilitare il modulo SSL e la configurazione.
[Email protected]: / etc / apache2 # a2enmod ssl
Considerando la dipendenza setenvif per ssl:
Modulo setenvif già abilitato
Considerando la dipendenza mime per ssl:
Modulo mime già abilitato
Considerando la dipendenza socache_shmcb per ssl:
Modulo di abilitazione socache_shmcb.
Abilitazione modulo ssl.
Vedi /usr/share/doc/apache2/README.Debian.gz su come configurare SSL e creare certificati autofirmati.
Per attivare la nuova configurazione, è necessario eseguire:
systemctl restart apache2
[Email protected]: / Etc / apache2 #
Come suggerito, riavvia Apache.
A questo punto, se netstat noterai che Apache è stato avviato con la porta sicura 443.
[Email protected]: / etc / apache2 # netstat -anlp | grep 443
tcp6 0 0 ::: 443 ::: * ASCOLTA 11616 / apache2
[Email protected]: / Etc / apache2 #
Ma non abbiamo ancora finito. È iniziato con il certificato predefinito (fittizio) e dobbiamo sostituirlo.
Modifica default-ssl.conf usando il file vi e sostituisci quanto segue con il percorso in cui hai generato la chiave e il file cert.
SSLCertificateFile /root/mkcert/example.com.pem
SSLCertificateKeyFile /root/mkcert/example.com-key.pem
Prima di riavviare Apache, devi anche manipolare il file hosts per example.com in modo che si risolva nel tuo host locale anziché in Internet. Al termine, riavvia il server HTTP Apache e accedi a example.com: vedrai che viene offerto un certificato attendibile.
Conclusione
Questo può essere utile per avere un certificato attendibile nell’ambiente locale. Quanto sopra è solo un esempio di example.com ma puoi farlo per localhost e altri. Se hai bisogno di un firmatario esterno per emettere un certificato, controlla come ottenerlo gratuitamente.