Maison >Opération et maintenance >Docker >Comment ajouter SSL aux services sous Docker

Comment ajouter SSL aux services sous Docker

PHPz
PHPzoriginal
2023-04-04 09:27:352601parcourir

Le déploiement de services dans Docker est devenu de plus en plus populaire. De plus, de nombreux services nécessitent l'utilisation de SSL afin de protéger la sécurité des données. Cet article explique comment ajouter SSL aux services sous Docker.

  1. Préparation

Tout d'abord, nous devons préparer certains outils nécessaires, notamment :

  • Docker : utilisé pour déployer des services
  • Docker Compose : simplifier le déploiement des conteneurs Docker
  • Certbot : utilisé pour émettre des certificats SSL

Veuillez vous assurer que Docker et Docker Compose sont installés. Sinon, veuillez d'abord installer ces deux outils.

  1. Obtenir un certificat SSL

Nous pouvons utiliser Certbot pour obtenir un certificat SSL. Certbot est un outil d'émission de certificats SSL gratuit et open source qui prend en charge la plupart des systèmes d'exploitation et des serveurs Web.

Tout d'abord, nous devons installer Certbot en utilisant la commande suivante :

sudo apt-get update
sudo apt-get install certbot

Ensuite, nous devons obtenir le certificat SSL en utilisant la commande suivante :

sudo certbot certonly --standalone -d example.com

Ici, exemple.com est votre nom de domaine. Lorsque vous exécutez cette commande, Certbot démarre un serveur Web et vérifie votre nom de domaine. Si la vérification réussit, Certbot émettra un certificat SSL et l'enregistrera dans le répertoire /etc/letsencrypt/live/example.com.

  1. Utilisation d'un certificat SSL

Ensuite, nous devons appliquer le certificat SSL à notre service Docker. Ici, nous utiliserons un exemple de service (Nginx), vous pouvez appliquer un certificat SSL à votre service Docker de la même manière.

Tout d'abord, nous devons ajouter les variables d'environnement suivantes dans le fichier Docker Compose :

services:
  nginx:
    image: nginx
    environment:
      - VIRTUAL_HOST=example.com
      - VIRTUAL_PORT=80
      - LETSENCRYPT_HOST=example.com
      - LETSENCRYPT_EMAIL=your_email@example.com

Où, VIRTUAL_HOST et VIRTUAL_PORT définissent le nom d'hôte et le port que nous souhaitons que le service utilise. LETSENCRYPT_HOST et LETSENCRYPT_EMAIL sont respectivement notre nom de domaine et notre adresse e-mail.

Ensuite, nous devons ajouter le volume suivant dans le fichier Docker Compose :

services:
  nginx:
    image: nginx
    volumes:
      - /etc/letsencrypt:/etc/letsencrypt:ro
    ...

Cela nous permettra d'utiliser le certificat SSL dans le conteneur Docker.

Enfin, nous devons ajouter ce qui suit au fichier de configuration Nginx :

server {
  listen 80;
  server_name example.com;
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;

  server_name example.com;

  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

  location / {
    ...
  }
}

Ici, nous redirigeons le port 80 vers le port 443 et configurons le chemin du certificat SSL. Vous devez remplacer le chemin du certificat par le vôtre.

  1. Exécution du service

Maintenant, nous sommes prêts à démarrer notre service Docker. Exécutez la commande suivante depuis la ligne de commande :

docker-compose up -d

Cela démarrera notre service Docker et liera automatiquement le certificat SSL au service.

En conclusion, l'ajout de SSL aux services Docker est en effet une tâche importante qui peut rendre vos services plus sécurisés. Tant que vous suivez les étapes décrites dans cet article, vous pouvez rendre votre service plus sécurisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn