👋

CTFdのメール確認リンクをHTTPSにしたい

2024/10/21に公開

CTFdをのメール確認リンクのフォーマットに関する問題とその解決策を説明する。
なお、CTFdのIssueに投げたものである。

https://github.com/CTFd/CTFd/issues/2608

環境

  • CTFdをDockerコンテナでPortainer.ioを使用して稼働
  • 使用しているイメージ: ctfd/ctfd:latest

問題

GmailのSMTPサーバーを用いてメール機能を設定したが、サインアップ確認メールに含まれる確認リンクが以下のようにHTTP形式で表示される。

http://172.17.0.7:8000/confirm/*

HTTPSを使用し、指定したホスト名でフォーマットされたリンクになるよう設定したい。
具体的には次のような形である。

https://example.com/confirm/*

解決策

実は仕様を根本から勘違いしており、メール内のURLはリクエスト元に基づいて自動生成されるようだ。登録がローカルで行われる場合はローカルIPアドレスがURLに使用されるが、外部からのリクエストではFQDNが含まれる。
実際に外部からHTTPSでアクセスしメール認証を行うと、望み通りの形でURLが発行された。

GitHubで編集を提案

Discussion