Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • コマンドライン
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリー
    • 継続的統合
  • 言語サポート
    • Node.js
    • Ruby
      • Bundler の使用
      • Rails のサポート
    • Python
      • Python でのバックグランドジョブ
      • Django の使用
    • Java
      • Maven の使用
      • Java でのデータベース操作
      • Play Framework の使用
      • Spring Boot の使用
      • Java の高度なトピック
    • PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
    • Heroku Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
    • コンプライアンス
  • Heroku Enterprise
    • Private Space
      • インフラストラクチャネットワーキング
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
    • シングルサインオン (SSO)
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Heroku のアーキテクチャ
  • ネットワーキングと DNS
  • アプリのカスタムドメイン名

アプリのカスタムドメイン名

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

Last updated 03 September 2020

Table of Contents

  • 手順の概要
  • サブドメインを使用してカスタムドメインを追加する
  • カスタムルートドメインを追加する
  • ワイルドカードドメインを追加する
  • カスタムドメインを削除する
  • 既存のドメインを表示する
  • ドメインの追加に関するルール
  • ドメイン名用語集

デフォルトでは、Heroku アプリは、アプリの Heroku ドメイン (​[name of app].herokuapp.com​ という形式) で利用できます。たとえば、​serene-example-4269​ という名前のアプリは、​serene-example-4269.herokuapp.com​ でホストされています。

Heroku DNS は、DNSSEC を使用して、すべての ​herokuapp.com​ および ​herokudns.com​ ドメインへのリクエストを認証します。DNSSEC は、DNS サーバーで受信する情報が信頼できるものであることを確認できるようにするセキュリティシステムです。

Heroku 以外のドメイン (たとえば、​www.yourcustomdomain.com​ など) でアプリを利用できるようにするには、アプリに​カスタムドメイン​を追加します。

すべての Heroku アプリにカスタムドメインを追加できます。ドメインを追加しても、追加料金は発生しません。セキュリティ上の理由から、アプリにドメインを追加するには、​Heroku アカウントを確認する​必要があります。

Heroku では、ドメイン登録サービス (カスタムドメイン名の登録を行う) や DNS プロバイダーサービス (カスタムドメイン名をアプリに対応付ける DNS サーバーをホストする) は提供していません。

​

手順の概要

​

以降、この記事では、次の手順について詳細に説明します。

  1. カスタムドメイン名を所有していることを確認します。カスタムドメイン名は、ドメイン登録サービスで購入できます。
  2. ​heroku domains:add​ コマンドでカスタムドメインをアプリに追加します。
  3. ​heroku domains​ コマンドを使用して、Heroku から提供される DNS ターゲットを調べます。
  4. アプリの DNS プロバイダーを設定して、Heroku から提供される DNS ターゲットに対応付けます。
  5. カスタムドメインでアプリにアクセスできることを確認します。DNS の変更が伝播するまで、時間がかかる場合があります。

​

サブドメインを使用してカスタムドメインを追加する

​

サブドメインを使用してカスタムドメインを追加するには、​domains:add​ Heroku CLI コマンドを使用します。

$ heroku domains:add www.example.com
Adding www.example.com to ⬢ example-app... done
 ▸    Configure your app's DNS provider to point to the DNS Target
 ▸    whispering-willow-5678.herokudns.com.
 ▸    For help, see https://devcenter.heroku.com/articles/custom-domains

The domain www.example.com has been enqueued for addition
 ▸    Run heroku domains:wait 'www.example.com' to wait for completion

アクセント文字などの非 ASCII 文字が含まれるドメイン名は、​Punycode​ を使用して追加する必要があります。たとえば、​éste.com​ というドメインは、先に ​xn--ste-9la.com​ に​変換​する必要があります。

 

​example.com is currently in use by another app​ というエラーメッセージが表示される場合は、「​ドメインの追加に関するルール​」セクションを参照してください。

​

DNS にサブドメインを設定する

​

​heroku domains:add​ コマンドでドメインを追加したら、DNS プロバイダーに、Heroku から提供される DNS ターゲットを対応付ける必要があります。この DNS ターゲットは、​heroku domains​ コマンドで表示できます (詳細は、「​既存のドメインを表示する​」を参照)。

通常は、DNS プロバイダーで新しい ​CNAME​ レコードを設定して、DNS プロバイダー に Heroku を対応付けます。次の表に、一般的な ​CNAME​ レコードのパターンを示します。

​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​
​レコード​​名前​​ターゲット​
​​​CNAME​​​​​​www​​​​​​ whispering-willow-5678.herokudns.com.​​​
​​​CNAME​​​​​​othersubdomain​​​​​​autumn-sunset-1495.herokudns.com.​​​
​​​CNAME​​​​​​examplesecure​​​​​​example-12345.ssl.herokudns.com.​​​

ターゲットドメインの末尾に ​.​ が必要かどうかは、ご使用の DNS プロバイダーによって異なります。

​CNAME​ レコードの作成に関する具体的な手順については、ご使用の DNS プロバイダーのドキュメントを参照してください。

DNS の変更が伝播しているという前提で、DNS が正しく設定されているかどうかを ​host​ コマンドで確認できます。

$ host www.example.com
www.example.com is an alias for whispering-willow-5678.herokudns.com.
...

DNS の変更は、有効になるまでに数分~数日かかる可能性があります。事前に DNS の TTL を短くしておくと、この伝播時間を最小限に抑えることができます (なくすことはできません)。

 

カスタムドメインを設定しても、アプリの Heroku ドメインは常にアクティブなまま維持されます。ユーザーがカスタムドメインのみ使用するようにする場合は、アプリから ​HTTP ステータスコード 301 Moved Permanently​ を送信して、Web ブラウザにカスタムドメインの使用を指示する必要があります。HTTP リクエストの ​Host​ ヘッダーフィールドに、ユーザーがアクセスしようとしているドメインが表示されます。そのフィールドが ​example.herokuapp.com​ の場合は、リダイレクトが送信されます。

​

カスタムルートドメインを追加する

​

サブドメインに加え、ルートドメインを追加する必要があります。ルートドメインの追加手順は、同じように Heroku CLI で行います。

$ heroku domains:add example.com
Adding example.com to ⬢ example-app... done
 ▸    Configure your app's DNS provider to point to the DNS Target
 ▸    whispering-willow-5678.herokudns.com.
 ▸    For help, see https://devcenter.heroku.com/articles/custom-domains

The domain example.com has been enqueued for addition
 ▸    Run heroku domains:wait 'example.com' to wait for completion

​

DNS にルートドメインを設定する

​

​DNS プロバイダーへのルートドメインの設定​は、DNS プロバイダーへのサブドメインの設定と同様です。ただし、サブドメインの場合は設定するレコードのタイプが常に CNAME であるのに対し、ルートドメインの場合、レコードのタイプは DNS プロバイダーによって異なります。

  • ​DNSimple では ALIAS​
  • ​DNS Made Easy では ANAME ​
  • ​easyDNS では ANAME​
  • ​PointDNS では ALIAS​
  • ​CloudFlare では CNAME​。​SSL での Heroku の設定に関する CloudFlare のガイド​も参照してください。
  • ​namecheap では ALIAS​

一部の DNS プロバイダーでは、ルートドメインには ​A レコード​ しか使用できません。A レコードには静的 IP が必要なため、残念ながら、A レコードでは Heroku にルートドメインを対応付けることができません。A レコードには、オンプレミスのデータセンター、クラウドインフラストラクチャサービス、Heroku のようなプラットフォームなどの環境で使用する場合に、重大な可用性の問題があります。Heroku では動的 IP アドレスを使用しているため、ルートドメインを別のドメインに対応付けられるように、CNAME のようなレコード (ALIAS レコードや ANAME レコードとも呼ばれる) を使用する必要があります。下記の例を参照してください。

どのプロバイダーを使用している場合でも、CNAME レコードと同じように、ルートドメインの ALIAS/ANAME/CNAME エントリを DNS ターゲットに対応付けます。

DNS プロバイダーによっては、「名前」の値が空または ​@​ の場合は、ルートドメインを示します。

​​ ​​ ​​ ​​ ​​ ​​
​レコード​​名前​​ターゲット​
​​​ALIAS​​ または ​​ANAME​​​​<empty> または ​​@​​​​​​hidden-sierra-7936.herokudns.com.​​​

​

ワイルドカードドメインを追加する

​

ワイルドカードドメインを使用すると、1 件のレコードで、あらゆるサブドメインをアプリにマッピングすることができます。ワイルドカードドメインは、一般的に、ユーザーやアカウントごとにパーソナライズされたサブドメインを使用するアプリケーションで使用します。すでに同じトップレベルドメイン (TLD) を使用している既存アプリをすべて所有している場合は、ワイルドカードドメインを追加できます。たとえば、あるアプリがすでに ​www.example.com​ を使用している場合、​*.example.com​ を追加するには、そのアプリを所有している必要があります。

ワイルドカードドメインは、​*​ というワイルドカードサブドメインの表記を使用する点以外は、ほかのドメインの場合と同じようにアプリに追加します。

$ heroku domains:add *.example.com
Adding *.example.com to ⬢ example-app... done
 ▸    Configure your app's DNS provider to point to the DNS Target
 ▸   encircled-magnolia-9265.herokudns.com.
 ▸    For help, see https://devcenter.heroku.com/articles/custom-domains

The domain *.example.com has been enqueued for addition
 ▸    Run heroku domains:wait '*.example.com' to wait for completion

アプリのいずれかにワイルドカードドメインが使用されていても、同じトップレベルドメイン (TLD) の特定のサブドメインをほかのアプリに追加できます。リクエストのルーティング時に、特定のサブドメインは、ワイルドカードドメインの前に評価されます。

ワイルドカードドメインを使用する場合は、ご使用の DNS プロバイダーの設定で Heroku に同意していることを確認することが重要です。特に、​example.herokuapp.com​ に対応付けるために ​*.example.com​ を DNS に設定した場合は、必ず ​heroku domains:add *.example.com​ も実行してください。このコマンドを実行しないと、悪意のある人が自分の Heroku アプリに ​baddomain.example.com​ を追加して、あなたのアプリケーション宛てのトラフィックを受信してしまう可能性があります。

​

DNS にワイルドカードドメインを設定する

​

DNS プロバイダーで ​encircled-magnolia-9265.herokudns.com.​ に CNAME レコードを追加するには、​*​ というワイルドカードサブドメイン表記を使用します。

​​ ​​ ​​ ​​ ​​ ​
​レコード​​名前​​ターゲット​
​​​CNAME​​​​​​*​​​​​​encircled-magnolia-9265.herokudns.com.​​

​

カスタムドメインを削除する

​

​domains:remove​ でドメインを削除します。

$ heroku domains:remove www.example.com
Removing www.example.com from ⬢ example-app... done

アプリを破棄すると、そのアプリに割り当てられているカスタムドメインは解放されます。その後、解放されたカスタムドメインをほかのアプリに割り当てることができます。

​

既存のドメインを表示する

​

アプリの現在の Heroku ドメイン、カスタムドメイン、DNS ターゲットを表示するには、​heroku domains​ コマンドを使用します。

$ heroku domains
=== example Heroku Domain
example.herokuapp.com

=== example Custom Domains
Domain Name      DNS Target
---------------  --------------------------
example.com      hidden-sierra-7936.herokudns.com
www.example.com  whispering-willow-5678.herokudns.com

Common Runtime

古いアプリケーションでは、DNS ターゲットの形式が ​[name of app].herokuapp.com​ の場合があります。SSL を使用していない場合は、Dashboard や CLI の出力に表示される DNS ターゲットに関係なく、​[name of app].herokuapp.com​ と ​<haiku>.herokudns.com​ のどちらの形式でも DNS ターゲットとして機能します。

​独自の証明書をアップロード​したり、​Automated Certificate Management​ を使用したりするときには ​<haiku>.herokudns.com​ の形式を使用する必要があるため、​<haiku>.herokudns.com​ を使用することをお勧めします。

 

Common Runtime - SSL Endpoint

​SSL Endpoint​ を使用している場合は、DNS ターゲットが若干異なります。Common Runtime のアプリでは、エンドポイントのドメイン名には ​example-12345.ssl.herokudns.com​ の形式の名前が使用されます。

 

Private Space

​Private Space​ アプリの DNS ターゲットの形式は、​<haiku>.<haiku>.herokuspace.com​ です。

​

ドメインの追加に関するルール

​

すべての Heroku ユーザーが自分のアプリにドメインを追加できます。Heroku では、明示的にドメインの所有権を確認する代わりに、ドメインの権利が複数のユーザーまたはアプリによって主張されないように、次のルールを施行しています。

  • 1 つのアプリには、最大 10,000 件のカスタムドメインを割り当てることができます。
  • 特定のドメインは、1 つの Heroku アプリにのみ追加できます。たとえば、​www.example.com​ をアプリ ​example-1​ に追加した場合、そのドメインをアプリ ​example-2​ にも追加することはできません。
  • 対応するサブドメインをすでに使用している既存アプリを ​すべて​所有している場合は、ワイルドカードドメインを追加できます。たとえば、 あるアプリがすでに ​www.example.com​ を使用している場合、​*.example.com​ を追加 するには、そのアプリを所有している必要があります。
  • 該当するワイルドカードドメインが割り当てられたアプリを所有 している場合は、サブドメインまたは Apex ドメインを追加できます。たとえば、 ​www.example.com​ または ​example.com​ を追加するには、​*.example.com​ を使用するアプリを所有している必要があります (そのようなカスタムドメインが存在する場合)。
  • 当該ドメインのワイルドカード SSL 証明書を使用している​すべて​のアプリケーションが同じアカウントに所有されている場合は、サブドメインを追加できます。たとえば、​*.example.com​ のワイルドカード SSL 証明書がアップロードされているアプリが別のアカウントにある場合は、​something.example.com​ を自分のアカウントのアプリに追加できません。
  • ​wildcard​ は、Heroku のサブドメインのための予約キーワードです。たとえば、​wildcard.example.com​ を使用するとエラーになります。

自分が所有しているドメインを追加できない場合は、​サポートチケットを登録​してください。

​

ドメイン名用語集

​

  • ​ドメイン​ または ​ドメイン名​: アプリにアクセスするための完全な名前 (つまり、IP アドレスを使用せずにアクセス)。たとえば、​www.yourcustomdomain.com​
  • ​サブドメイン​: ​www.yourcustomdomain.com​ の ​www​
  • ​ルートドメイン​ (ネイキッドドメイン、ベアドメイン、ゾーン Apex ドメインともいう): 「www.yourcustomdomain.com」の「yourcustomdomain.com」
  • ​ワイルドカードドメイン​: すべてのサブドメインに一致するドメインで、​*.yourcustomdomain.com​ のように表記される
  • ​ドメイン登録サービス​: カスタムドメイン名の購入や登録ができる企業
  • ​DNS プロバイダー​: カスタムドメイン名を送信先 (「DNS ターゲット」) に変換する DNS サーバーを管理している企業。フィールドは、CNAME、ALIAS、ANAME、Aレコードとも呼ばれます。最初の 3 つのみ、Heroku アプリで動作します (A レコードには IP アドレスが必要で、Heroku アプリには固定の受信 IP アドレスがないため)。
  • ​Heroku ドメイン​: 各アプリに付与されるデフォルトドメインを示す Heroku 用語。​[name of app].herokuapp.com​ という形式を使用します
  • ​DNS ターゲット​: カスタムドメイン名の送信先を DNS プロバイダに指定するための Heroku ドメインを示す Heroku 用語。

関連カテゴリー

  • ネットワーキングと DNS

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies