Heroku での SSL の概要
最終更新日 2021年11月09日(火)
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 では次のものがサポートされません。
- ワイルドカードドメイン
- 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
この場合も、ワイルドカードドメインは ACM でサポートされません。
どのような場合に Heroku SSL を使用するか
Heroku SSL は、独自の TLS 証明書をアップロードできる、有料の dyno で実行されるアプリのための無料のサービスです。この証明書を購入および更新する責任は、お客様側にあります。
次の場合は、Automated Certificate Management (ACM) の代わりに Heroku SSL を使用してください。
- 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