Traefik

Docker ComposeでTraefikとLet’s Encrypt自動取得の手順

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Docker ComposeでTraefikとLet’s Encrypt自動取得のやり方

Docker Composeを用いたTraefikとの統合およびLet’s Encrypt証明書の自動取得は、Webサービス運用におけるセキュリティ強化と運用効率向上に直結します。本記事では、2023年時点での実装可能な最新技術を基盤にした手順を解説し、DevOpsエンジニアやWeb開発者向けにステップバイステップで具体的な構築方法を提示します。


TraefikとDocker Composeの環境構築準備

TraefikによるHTTPS証明書自動取得は、ホスト環境およびネットワーク設定が整っていることが前提です。以下では必要なツール・設定に加え、注意点も併記します。

必要なツールと前提条件

Traefikを動作させるためには以下の準備が必要です。

  • Docker および Docker Compose のインストール
  • バージョンは2023年現在で v24.x以上 推奨(最新版の確認が必須)。
  • ホストOSのネットワーク設定
  • 公開IPアドレス割り当てとポート開放(80, 443)が不可欠です。
  • Let’s Encryptアカウント情報
  • ACMEのメールアドレスやAPIトークンなどのセキュリティ情報が必要です。

注意: Docker Composeファイルの構文ミスによりTraefik起動失敗する可能性があります。基本構造を事前に確認してください。


Docker Composeファイルの基本構造

Docker ComposeでTraefikを立ち上げる際、コンテナ間通信や証明書管理が鍵となります。以下は簡単な設定例です。

ポイント: volumesでDockerソケットをマウントし、Traefikがコンテナ情報を取得できるようにします。また、ネットワークセグメンテーションによりサービス間の通信管理を行います。


Docker ComposeによるTraefik構築手順

Traefikの設定ファイル(traefik.yml)はルーティングや証明書管理の根幹です。最新バージョンに合わせたYAML記法で構築してください。

traefik.yamlの基本設定例

以下は、HTTPチャレンジとDNSチャレンジを備えた設定ファイルの例です。

注意: DNSチャレンジの場合は、Cloudflare APIトークンを.envファイルで管理する必要があります。


コンテナ間通信のベストプラクティス

TraefikとWebアプリケーションは同一ネットワークに所属し、ルーティングされるように設計します。以下が推奨される構成です。

  1. 専用ネットワーク作成
  2. networksセクションでwebネットワークを定義し、TraefikとWebサービスの接続を確立します。

  3. ポートマッピングの注意点

  4. ホストとコンテナのポートが一致しない場合、通信エラーが発生する可能性があります。

  5. ラベル設定による自動ルーティング

  6. WebアプリケーションのDocker Composeにtraefik.http.routers.<route-name>.ruleなどのラベルを追加し、自動ルート設定を行います。

Let's Encryptリゾルバの設定方法

Let’s Encrypt証明書取得にはACMEアカウント情報とDNSチャレンジの設定が不可欠です。セキュリティ対策も重要になります。

ACMEアカウントのセキュアな管理

ACMEアカウント情報を安全に保存する方法として以下の手順があります。

  1. 環境変数による暗号化
  2. emailstorageなどの情報は.envファイルで管理し、リポジトリにはコミットしないようにしましょう。

  3. 秘密鍵の保護

  4. ACMEアカウント情報をホスト側の暗号化ツール(例: ansible-vault)で管理する方法があります。

  5. 定期的な更新ポリシーの設定

  6. 90日有効なLet’s Encrypt証明書は自動更新が必須です。certificatesResolversautoRenewフラグを追加してください。

注意: ACMEアカウント情報(特にメールアドレス)の公開リスクがあります。秘密管理に注意してください。


DNS-01チャレンジの有効化

DNS-01チャレンジでは、CloudflareやRoute53などDNSプロバイダーのAPIを使用します。以下はCloudflareを使った設定例です。

ポイント: DNS-01チャレンジではTraefikがDNSレコードを自動で更新します。この際、CloudflareのAPIトークンが必要です。


Cloudflareでのワイルドカード証明書取得

Cloudflareを使用してワイルドカード証明書を自動取得するには、CNAMEレコードとDNSチャレンジ設定が不可欠です。

CNAMEレコードの設定確認

Cloudflareでワイルドカード証明書を取得するために、以下のようにCNAMEレコードを設定してください。

レコードタイプ 名前(Host) 値(Value)
CNAME *.example.com example.com

注意: CNAMEレコードの設定ミスにより、DNSチャレンジに失敗することがあります。定期的に確認してください。


TraefikのDNSチャレンジ設定

Cloudflare APIトークンをTraefikに渡して自動証明書取得を実現します。

  1. Cloudflare APIトークンを作成
  2. スコープ(Zone:Read, Zone:Writeなど)を持つトークンを作成してください。

  3. Traefikのコンフィグに追加
    yaml
    certificatesResolvers:
    letsencrypt-dns:
    acme:
    email: [メールアドレス]
    storage: /etc/traefik/acme.json
    dnsChallenge:
    provider: cloudflare
    resolvers:
    - "cloudflare-resolver"

  4. APIトークンを.envに保存
    env
    CLOUDFLARE_API_TOKEN=your-cloudflare-api-token

ポイント: APIトークンは.envファイルで管理し、リポジトリには含めないよう注意してください。


セキュリティ強化と運用ベストプラクティス

Traefikの運用ではセキュリティ設定とログ監視を常に意識する必要があります。特に証明書の自動更新やエラーロギングが重要です。

自動更新ポリシーの最適化

Let’s Encrypt証明書は90日有効で、以下のように自動更新を管理できます。

ポイント: certificateConstraintsで証明書の有効期限や対象ドメインを指定できます。自動更新失敗時に備え、定期的な監視体制を構築してください。


エラーロギングの有効化

Traefikのロギング設定により、証明書取得時のエラーをリアルタイムで確認できます。

注意: デバッグレベルのログは運用環境では不要ですが、開発やテスト環境では有効にしておくと問題発見が早くなります。


まとめ

本記事では、2023年時点で実装可能な技術を基にしたTraefikとLet’s Encrypt自動取得の手順を解説しました。以下のポイントに注意し、あなたの環境でSSL証明書の自動管理を実現してください。

  • Docker Composeとtraefik.ymlの構成
  • ACMEアカウント情報のセキュリティ管理
  • CloudflareでのDNSチャレンジ設定
  • ワイルドカード証明書取得時のCNAME確認
  • 自動更新ポリシーとエラーロギングの有効化

設定中に疑問があればコメントでご質問ください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Traefik