Heroku での SSL の概要
最終更新日 2023年05月19日(金)
Heroku アプリのカスタムドメインに対して SSL を有効にする方法は、2 つあります。オプションは、使用が推奨される順番に示されています。
- Automated Certificate Management (ACM)
- Heroku SSL
一般に、アプリに Automated Certificate Management でサポートされていない機能を必要とする場合を除き、ACM を使用します。この記事では、各方法で提供されている機能の概要を説明します。
Private Spaces 内のアプリでの SSL の有効化については、ここにあるドキュメントを参照してください。
SSL は、Common Runtime アプリの .herokuapp.com
に対しては常に有効になっています。
どのような場合に Automated Certificate Management (ACM) を使用するか
Automated Certificate Management (ACM) では、Heroku は、Common Runtime 上の有料の dyno で実行されているアプリの TLS 証明書を自動的に管理します。ACM によって処理される証明書は、有効期限が切れる 1 か月前に自動的に更新されます。また、カスタムドメインを追加または削除するたびに、新しい証明書が自動的に作成されます。
ACM は、ほとんどの Heroku アプリに推奨されます。その理由は次のとおりです。
- 追加コストなしで TLS 証明書が提供されます。
- 複数のドメインの証明書の作成がサポートされています。
- 期限が切れる前に TLS 証明書が自動的に更新されます。
ACM では以下のものがサポートされていません。
- ワイルドカードドメイン
- OV/EV 証明書
- 内部ルーティングを使用しているアプリ
- Eco dyno アプリ
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