Visualizzazione post con etichetta https. Mostra tutti i post
Visualizzazione post con etichetta https. Mostra tutti i post

domenica 17 maggio 2020

Come sviluppare in locale con webserver in https


C'è bisogno di generare un certificato auto firmato e di aggiungerlo al keystore di windows per fare in modo che Chrome lo riconosca come valido.

Diverse guide consigliano la strada della generazione del certificato mediante openssl e di aggiungerlo manualmente al keystore. Dopo ore di tentativi non ci
sono riuscito e ho ripiegato sull'ottima utility FiloSottile/mkcert https://github.com/FiloSottile/mkcert

In windows procedere nel seguente modo:

- Installare l'utility mediante Chocolatey come consigliato dal sito
choco install mkcert

- Eseguire il seguente comando per creare un'autorità di certificazione attendibile
mkcert -install

- Eseguire il seguente comando per creare un certificato da usare con i vari webservers
mkcert example.test "*.example.test" example.test localhost 127.0.0.1 ::1 dev.localhost.test

Con il comando di cui sopra andiamo a creare un certificato valido per tutti quei domini specificati

- Aprire come administrator il file C:\Windows\System32\drivers\etc\hosts ed inserire le mappature di nome/indirizzo ip a seconda di quello che avete scritto sopra come domini di sviluppo
Ad esempio:
127.0.0.1 example.test
127.0.0.1 dev.localhost.test


::: Configurazione di Apache

La configurazione di apache per l'ssl di solito si trova in apache\conf\extra\httpd-ssl.conf e dobbiamo specificare il certificato e la chiave appena creata
Nel mio caso le due righe sono:
SSLCertificateFile "c:/Apache24/certs/example.test+6.pem"
SSLCertificateKeyFile "c:/Apache24/certs/example.test+6-key.pem"


::: Configurazione di webpack-dev-server

Il comando start di package.json deve essere simile al seguente:
    "start": "webpack-dev-server --open chrome --https --mode development --host dev.localhost.test --port 8080 --cert=ssl/example.test+6.pem --key=ssl/example.test+6-key.pem"

i certificati vanno messi all'interno di una cartella chiamata, per esempio ssl, all'interno della directory del progetto, cioè dove si trova package.json

Nota Bene: fare attenzioni a possibili conflitti di porte già in uso come la 8080

Post Scriptum:
Dopo ore di tentativi con openssl ho ripiegato su questa semplice utility mkcert. Probabilmente sbagliavo nel fatto che mediante openssl dovevo prima generare un certificato di autorità attendibile e solo successivamente generare i certificati per i domini desiderati mediante la firma degli stessi con il certificato di autorità generato prima.


(-;


mercoledì 22 aprile 2020

Abilita SSL in Prestashop non funziona

A volte può capitare che nonostante si sia installato correttamente un certificato TLS sul dominio, Prestashop si rifiuta di attivare il protocollo SSL sulle pagine e rimanda sempre al protocollo http

Per risolvere il problema bisogna eseguire una query su database:

UPDATE ps_configuration SET `value`=1 WHERE `name`="PS_SSL_ENABLED"


(-;