2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Herokuでカスタムドメインを設定する方法

2
Last updated at Posted at 2026-03-05

はじめに

最近Herokuで運用しているアプリにカスタムドメインを設定する機会があったのですが、Heroku側のドメイン追加だけでなく、DNSのCNAME設定、SSL証明書の発行(ACM)、さらに認証サービスとの連携まで考慮する必要があって、何をどの順番で何をすればいいのか分からず何度もハマりました。

特にACMの有効化がDashboardからできずCLIが必要だったり、認証サービスの設定順序を間違えて「Callback URL mismatch」に悩まされたりと、公式ドキュメントだけでは辿り着きにくい落とし穴が多かったです。

同じような状況で困っている方の参考になればと思い、一連の手順をまとめました。
今回の例はyour-app.herokuapp.comyour-app.example.comに変更する想定で進めます。

前提

  • Herokuアプリがデプロイ済み
  • 独自ドメインを取得済み(例: example.com
  • DNSの管理画面にアクセスできる
  • Heroku CLIがインストール済み(未導入なら brew tap heroku/brew && brew install heroku

ステップ1: Herokuにカスタムドメインを追加

Heroku Dashboardからドメインを登録して、DNSターゲットを取得します。

  1. Heroku Dashboardで対象アプリを開く
  2. SettingsDomains セクションへスクロール
  3. Add domain」をクリック
  4. カスタムドメイン(例: your-app.example.com)を入力して追加
  5. 表示される DNS Targetxxx.herokudns.com)をメモしておく

ステップ2: DNSにCNAMEレコードを設定

ドメインを取得したDNS管理画面で、CNAMEレコードを追加します。

タイプ 名前(ホスト) 値(ターゲット)
CNAME your-app ステップ1でメモしたDNS Target

サブドメイン部分(上の例では your-app)は、登録したカスタムドメインに合わせてください。

DNS反映には数分〜最大48時間かかりますが、通常は数分〜30分程度で完了するようです。

ステップ3: ACM(自動SSL証明書管理)を有効化

カスタムドメインでHTTPSを使うには、HerokuのACMを有効にしてSSL証明書を自動発行させる必要があります。この設定はDashboardだとできないので、CLIを使います。

# Heroku CLIにログイン
heroku login

# ACMの状態を確認
heroku certs:auto --app your-app-name

# ACMを有効化
heroku certs:auto:enable --app your-app-name

数分待ってから再度確認して、Cert Issued と表示されればOKです。

heroku certs:auto --app your-app-name

ACMがうまくいかない場合

heroku certs:auto:refresh --app your-app-name

ただし、このコマンドやACMの有効/無効切り替えを何度も繰り返すと、Let's Encryptのレート制限に引っかかって最大1週間待つハメになります。1回実行したら15分程待ってください。

ステップ4: 動作確認

  1. ブラウザで https://your-app.example.com にアクセスできる
  2. アドレスバーに鍵マークが表示される(SSL有効)

認証サービスを使っている場合の注意点

Auth0等の認証サービスを使っている場合、ドメイン変更に伴って以下の設定更新も必要です。

  • Allowed Callback URLshttps://新ドメイン/callback を追加
  • Allowed Logout URLshttps://新ドメイン を追加
  • Allowed Web Originshttps://新ドメイン を追加

サーバー側でオリジンチェックやCORS制御をしている場合は、環境変数も新ドメインに更新してください。

認証サービスの設定更新は、クライアントの再デプロイより前にやっておいてください。順序を間違えると「Callback URL mismatch」エラーが出ます。

ハマったエラーと対処法

エラー 原因 対処法
ERR_SSL_UNRECOGNIZED_NAME_ALERT ACMが無効 ステップ3でACMを有効化
CORSエラー オリジン設定が未更新 サーバーの環境変数・認証サービスのWeb Origins設定を確認
Callback URL mismatch 認証サービスにCallback URLが未登録 Allowed Callback URLsに新ドメインを追加
404 / ドメインが見つからない DNS未反映 CNAMEレコードを確認して、時間を置いて再試行

まとめ

やることは大きく3ステップ

  1. Herokuにカスタムドメインを追加 → DNS Targetを取得
  2. DNSにCNAMEレコードを設定 → ドメインをHerokuに向ける
  3. ACMを有効化 → SSL証明書を自動発行

認証サービスを使っている場合は、ドメイン変更前に許可URLの追加を忘れずに。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?