Heim >Betrieb und Instandhaltung >Docker >So fügen Sie SSL zu Diensten unter Docker hinzu

So fügen Sie SSL zu Diensten unter Docker hinzu

PHPz
PHPzOriginal
2023-04-04 09:27:352601Durchsuche

Die Bereitstellung von Diensten in Docker erfreut sich immer größerer Beliebtheit. Darüber hinaus erfordern viele Dienste zum Schutz der Datensicherheit die Verwendung von SSL. In diesem Artikel wird erläutert, wie Sie SSL zu Diensten unter Docker hinzufügen.

  1. Vorbereitung

Zuerst müssen wir einige notwendige Tools vorbereiten, darunter:

  • Docker: wird zum Bereitstellen von Diensten verwendet
  • Docker Compose: vereinfacht die Bereitstellung von Docker-Containern
  • Certbot: wird zum Ausstellen von SSL-Zertifikaten verwendet

Bitte stellen Sie sicher, dass Sie Docker und Docker Compose installiert haben. Wenn nicht, installieren Sie bitte zuerst diese beiden Tools.

  1. SSL-Zertifikat erhalten

Wir können Certbot verwenden, um ein SSL-Zertifikat zu erhalten. Certbot ist ein kostenloses Open-Source-Tool zur Ausstellung von SSL-Zertifikaten, das die meisten Betriebssysteme und Webserver unterstützt.

Zuerst müssen wir Certbot mit dem folgenden Befehl installieren:

sudo apt-get update
sudo apt-get install certbot

Als nächstes müssen wir das SSL-Zertifikat mit dem folgenden Befehl abrufen:

sudo certbot certonly --standalone -d example.com

Hier ist example.com Ihr Domainname. Wenn Sie diesen Befehl ausführen, startet Certbot einen Webserver und überprüft Ihren Domänennamen. Wenn die Überprüfung erfolgreich ist, stellt Certbot ein SSL-Zertifikat aus und speichert es im Verzeichnis /etc/letsencrypt/live/example.com.

  1. Ein SSL-Zertifikat verwenden

Als nächstes müssen wir das SSL-Zertifikat auf unseren Docker-Dienst anwenden. Hier verwenden wir einen Beispieldienst (Nginx). Sie können auf ähnliche Weise ein SSL-Zertifikat auf Ihren Docker-Dienst anwenden.

Zuerst müssen wir die folgenden Umgebungsvariablen in der Docker Compose-Datei hinzufügen:

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

Wobei VIRTUAL_HOST und VIRTUAL_PORT den Hostnamen und Port definieren, den der Dienst verwenden soll. LETSENCRYPT_HOST und LETSENCRYPT_EMAIL sind unser Domainname bzw. unsere E-Mail-Adresse.

Als nächstes müssen wir das folgende Volume in der Docker Compose-Datei hinzufügen:

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

Dadurch können wir das SSL-Zertifikat im Docker-Container verwenden.

Abschließend müssen wir der Nginx-Konfigurationsdatei Folgendes hinzufügen:

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 / {
    ...
  }
}

Hier leiten wir Port 80 auf Port 443 um und konfigurieren den SSL-Zertifikatspfad. Sie müssen den Zertifikatspfad durch Ihren eigenen ersetzen.

  1. Ausführen des Dienstes

Jetzt sind wir bereit, unseren Docker-Dienst zu starten. Führen Sie den folgenden Befehl über die Befehlszeile aus:

docker-compose up -d

Dadurch wird unser Docker-Dienst gestartet und das SSL-Zertifikat automatisch an den Dienst gebunden.

Zusammenfassend lässt sich sagen, dass das Hinzufügen von SSL zu Docker-Diensten tatsächlich eine wichtige Aufgabe ist, die Ihre Dienste sicherer machen kann. Solange Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie Ihren Dienst sicherer machen.

Das obige ist der detaillierte Inhalt vonSo fügen Sie SSL zu Diensten unter Docker hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn