💡

Traefikでhttpsにリダイレクトさせる

2024/07/04に公開

概要

以下の記事でTraefikを使ったhttps化したコンテナの運用例を紹介しました。

https://zenn.dev/nakamura196/articles/c607c7834aad0d

ただ、(現在は修正済み)http接続をhttps接続にリダイレクトする設定が漏れており、80ポートにアクセスすると、not foundになっていました。

この点の修正方法に関する備忘録です。

変更前

traefik.yml
log:
  # level: DEBUG

entryPoints:
  web:
    address: :80
  websecure:
    address: :443

api:
  dashboard: true

providers:
  docker:
    exposedByDefault: false

certificatesResolvers:
  myresolver:
    acme:
      email: aaa@bbb
      storage: /acme.json
      caServer: https://acme-v02.api.letsencrypt.org/directory
      # caServer: https://acme-staging-v02.api.letsencrypt.org/directory
      httpChallenge:
        entryPoint: web

変更後

traefik.yml
log:
  # level: DEBUG

entryPoints:
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure
          schema: https
          permanent: true
  websecure:
    address: :443

api:
  dashboard: true

providers:
  docker:
    exposedByDefault: false

certificatesResolvers:
  myresolver:
    acme:
      email: na.kamura.1263@gmail.com
      storage: /acme.json
      caServer: https://acme-v02.api.letsencrypt.org/directory
      # caServer: https://acme-staging-v02.api.letsencrypt.org/directory
      httpChallenge:
        entryPoint: web

entryPointsの部分について、以下のようにリダイレクトの設定を追加しています。

...
entryPoints:
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure
          schema: https
          permanent: true
...

まとめ

他にも良い方法や、考慮が漏れている点があるかもしれませんが、参考になりましたら幸いです。

Discussion