Docker でサービスをデプロイすることはますます一般的になってきています。さらに、データのセキュリティを保護するために、多くのサービスでは SSL の使用が必要です。この記事では、Docker 下のサービスに SSL を追加する方法を紹介します。
まず、次のような必要なツールを準備する必要があります。
Docker と Docker Compose がインストールされていることを確認してください。まだインストールされていない場合は、まずインストールしてください。これら 2 つのツールをインストールします。
Certbot を使用して SSL 証明書を取得できます。 Certbot は、ほとんどのオペレーティング システムと Web サーバーをサポートする無料のオープンソース SSL 証明書発行ツールです。
まず、次のコマンドを使用して Certbot をインストールする必要があります:
sudo apt-get update sudo apt-get install certbot
次に、次のコマンドを使用して SSL 証明書を取得する必要があります:
sudo certbot certonly --standalone -d example.com
ここに例を示します。 com はドメイン名です。このコマンドを実行すると、Certbot は Web サーバーを起動し、ドメイン名を確認します。検証が成功すると、Certbot は SSL 証明書を発行し、/etc/letsencrypt/live/example.com ディレクトリに保存します。
次に、SSL 証明書を Docker サービスに適用する必要があります。ここではサンプルサービス (Nginx) を使用します。同様の方法で SSL 証明書を Docker サービスに適用できます。
まず、次の環境変数を Docker Compose ファイルに追加する必要があります。
services: nginx: image: nginx environment: - VIRTUAL_HOST=example.com - VIRTUAL_PORT=80 - LETSENCRYPT_HOST=example.com - LETSENCRYPT_EMAIL=your_email@example.com
その中で、VIRTUAL_HOST と VIRTUAL_PORT は、サービスで使用するホスト名とポートを定義します。 LETSENCRYPT_HOST と LETSENCRYPT_EMAIL は、それぞれ当社のドメイン名と電子メール アドレスです。
次に、Docker Compose ファイルに次のボリュームを追加する必要があります。
services: nginx: image: nginx volumes: - /etc/letsencrypt:/etc/letsencrypt:ro ...
これにより、Docker コンテナ内で SSL 証明書を使用できるようになります。
最後に、次の内容を 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 / { ... } }
ここでは、ポート 80 をポート 443 にリダイレクトし、SSL 証明書のパスを構成します。証明書のパスを独自のものに置き換える必要があります。
これで、Docker サービスを開始する準備が整いました。コマンド ラインから次のコマンドを実行します。
docker-compose up -d
これにより、Docker サービスが開始され、SSL 証明書がサービスに自動的にバインドされます。
つまり、Docker サービスに SSL を追加することは、サービスの安全性を高めるための重要なタスクです。この記事で説明されている手順に従う限り、サービスの安全性を高めることができます。
以上がDocker下のサービスにSSLを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。