Générer des certificats SSL pour vos développements en local
Vous avez sans doute déjà été confronté à devoir mettre en place du HTTPS en local mais vous avez baissé les bras face à la tâche que cela représente ? Et bien maintenant avec mkcert vous allez pouvoir faire ça en littérallement 2 lignes de script.
Une fois que vous avez installé mkcert (que ce soit via le binaire ou via brew), vous pouvez lancer la commande :
mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com
Une fois ces fichiers générés, vous allez devoir lancer la commande suivante pour installer les certificats sur votre machine afin que votre navigateur puisse les reconnaître et surtout les considérer comme valides :
mkcert -install
Et voilà, vous avez vos certificats SSL. Vous pouvez maintenant les utiliser dans votre configuration locale avec apache ou nginx. Les certificats sont valables 10 ans, donc cela laisse largement le temps de terminer votre projet.
Pour ma part j'utilise un reverse proxy nginx qui me permet d'avoir sur un environnement local plusieurs conteneurs docker qui tournent sur les mêmes ports 80 et 443 sans qu'il n'y ait de conflits. Très simple à mettre en place et en plus il gère nativement le HTTP2.
Demo
docker-compose.yml
version: '3.5'
services:
nginx_proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- ./certificates/site.loc.pem:/etc/nginx/certs/site.loc.crt:ro
- ./certificates/site.loc.key:/etc/nginx/certs/site.loc.key:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: unless-stopped
nginx_site:
build:
context: .
dockerfile: nginx/Dockerfile
environment:
- VIRTUAL_HOST=${HTTP_HOST}
- CERT_NAME=site.loc
volumes:
- ..:/var/www/html
- ./nginx/config/vhost.nginx:/etc/nginx/conf.d/default.conf:ro
restart: unless-stopped
Dockerfile (nginx)
Je suis obligé de faire un Dockerfile car par défaut, le port 443 n'est pas exposé.
FROM nginx:1.17-alpine
EXPOSE 80
EXPOSE 443
Articles liés
0 commentaire
Soyez le premier à commenter l'article.