Heroku での TLS の概要
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2024年03月13日(水)
Heroku アプリのカスタムドメインに対して TLS を有効にする方法は 2 つあります。オプションは、使用が推奨される順番に示されています。
- Automated Certificate Management (ACM)
- Heroku SSL
一般に、アプリに Automated Certificate Management でサポートされていない機能を必要とする場合を除き、ACM を使用します。この記事では、各方法で提供されている機能の概要を説明します。
Private Spaces 内のアプリでの TLS の有効化については、ここにあるドキュメントを参照してください。
TLS は、Common Runtime アプリの .herokuapp.com
に対しては常に有効になっています。
どのような場合に Automated Certificate Management (ACM) を使用するか
Automated Certificate Management (ACM) では、Heroku は Common Runtime 上で実行されているアプリの TLS 証明書を自動的に管理します。ACM によって処理される証明書は、有効期限が切れる 1 か月前に自動的に更新されます。また、カスタムドメインを追加するたびに、新しい証明書が自動的に作成されます。
ACM は、ほとんどの Heroku アプリに推奨されます。その理由は次のとおりです。
- 追加コストなしで TLS 証明書が提供されます。
- 複数のドメインの証明書の作成がサポートされています。
- 期限が切れる前に TLS 証明書が自動的に更新されます。
ACM では以下のものがサポートされていません。
- ワイルドカードドメイン
- OV/EV 証明書
- 内部ルーティングを使用しているアプリ
ACM でサポートされていない機能のいずれかが必要なアプリでは、代わりに Heroku SSL を使用します。
ACM の DNS ターゲット
ACM の DNS ターゲットは、Common Runtime アプリの場合は herokudns.com
で、Private Spaces アプリの場合は herokuspace.com
で終わります。たとえば、次のようになります。
example.com example.com.herokudns.com
www.example.com www.example.com.herokudns.com
または
example.com random-word-odhsycy1xdsqfbqy8gceaa2d.herokudns.com
または Private Spaces の場合は、次のようになります。
example.com random-haiku-5196.also-random-3847.herokuspace.com
AMC ではワイルドカードドメインをサポートしていないことにご注意ください。
どのような場合に Heroku SSL を使用するか
Heroku SSL は、独自の TLS 証明書をアップロードできる、有料の dyno で実行されるアプリのための無料のサービスです。この証明書を購入および更新する責任は、お客様側にあります。
次の場合は、Automated Certificate Management (ACM) の代わりに Heroku SSL を使用してください。
- OV/EV 証明書を使用したい。
- アプリでワイルドカードドメインをサポートする必要がある。
- アプリで内部ルーティングを使用している。
Heroku SSL では、TLS プロトコルの拡張機能である Server Name Indication (SNI) を使用します。
Heroku SSL の DNS ターゲット
Heroku SSL の DNS ターゲットは、次のパターンに従います。
example.com example.com.herokudns.com
www.example.com www.example.com.herokudns.com
*.example.com wildcard.example.com.herokudns.com