Fastly マネージド証明書を利用して HTTPS で配信する

このガイドでは、Fastly で管理する証明書を利用しドメインに対して HTTPS を有効にし Fastly TLS を利用する方法を説明します。Fastly マネージド証明書は、Let’s Encrypt から購入、更新をするために ACME プロトコル を利用します.

HTTPS を利用して Fastly から安全にトラフィックを配信するため、Web サイトやアプリケーションは、信頼済み認証局によって署名された有効な TLS 証明書をクライアントに提供する必要があります。TLS と SSL を利用することで、クライアントは安全なサーバーのコネクションを利用して HTTPS によりトラフィックを配信することができます。

作業を始める前に

Fastly マネージド証明書で Fastly TLS を利用するため、以下の前提条件をご確認ください:

  • 有料アカウント配下のスーパーユーザーまたは TLS 管理権限 を持つユーザーアカウント。(無料の開発者アカウントでは本機能は利用できません)
  • TLS 証明書に SAN エントリーとして登録される関連ドメインに関する DNS レコードの変更権限
  • 関連するドメインの Fastly サービスへの登録

Fastly TLS のコントロールパネルはお客様 TLS 証明書のホスティングサービスとしてアップロードされた証明書においてもご利用いただけますが以下の制約にご注意下さい。

  • お客様 TLS 証明書ホスティングサービスの証明書としてアップロードされた証明書を置き換えた場合、証明書は継続してお客様 TLS 証明書ホスティングサービスとして扱われ請求に変更はありません。

  • お客様 TLS 証明書ホスティングサービスを利用してアップロードされた証明書を削除し、新たに Fastly TLS のコントロールパネルを利用して証明書をアップロードした場合、新しい証明書は Fastly TLS の請求対象となります。 削除されたお客様 TLS 証明書ホスティングサービスについてもご契約内容に応じてご契約期間が完了するまで課金が発生します。

お客様 TLS 証明書ホスティングサービスから Fastly TLS への移行については support@fastlycom までご連絡下さい。

これらの利用条件に加えて以下の制約事項についてもご了承下さい。:

  • Fastly TLS で利用可能な証明書の数の上限は50となっています。上限を超えた証明書のご利用をご希望の場合は japan@fastly.com までご連絡下さい。
  • Fastly は、ドメイン毎に1枚の証明書を生成します。
  • Fastly マネージド証明書では、クライアント側が TLS1.2および Server Name Indication (SNI) をサポートしていることがデフォルトでは必須です。これら以外の設定をご希望の場合には、japan@fastly.com にご連絡ください。特別な設定を利用する場合には、専用 Fastly IP アドレスを別途ご購入頂く必要があります。
  • Fastly TLS は Triple DES (3des) 暗号スイートをサポートしません。

ドメインに TLS を設定する

以下の手順に従って、HTTPS ドメインに TLS を設定をしてください。

  1. Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
  2. HTTPS and network タブをクリックしてください。TLS ドメインページが表示されます。このページでは、TLS が有効になっているドメインもしくは、有効にすることができるドメインが表示されます。まだどのドメインにも TLS 設定を始めていない場合は、このページでは何も表示されません。
  3. Secure another domain ボタンをクリックしてください。ドメイン入力画面が表示されます。

    the enter domain window that appears when you click the add https to your domains button on the https and network tab

  4. もし TLS 証明書と秘密鍵をお持ちの場合は、I want to bring my own certificate and private key リンクをクリックしてください。この手順の代わりにお持ちの証明書をアップロードし配置するためのガイドに従って実施してください。
  5. Domain name に apex ドメイン (例 example.com)、サブドメイン (例 www.example.com または api.example.com)、ワイルドカードドメイン (例 *.example.com) のいづれかを入力してください。
  6. オプションとして、複数のFastly IP アドレスをご利用していたり、 別のネットワークや TLS 設定を利用するために複数の Fastly CNAME レコードをお持ちの場合には、TLS configuration において適切なものを選択してください。このオプションにより、証明書を配置する IP アドレスおよび適用される関連する TLS 設定が決められます。
  7. Add domain ボタンをクリックしてください。TLS ドメインページでは、一連のカードが表示されます。そこには、各ドメインをリスト化されており、たった今追加したドメインや既存の TLS と証明書のステータスが含まれています。

ドメイン検証

HTTPS トラフィックを配信するため、Fastly では、コントロールパネルに追加したドメインがお客様の管理下にあることを検証する必要があります。Fastly では、apex ドメインとサブドメインを検証する方法は ACME DNS チャレンジ と ACME HTTP チャレンジ2種類を提供します。これらの方法は、特定の DNS 変更を必要とします。ワイルドカードドメインでは、DNS challenge タイプが必須です。

ACME DNS チャレンジのドメイン検証

Fastly マネージド TLS 証明書に追加するドメインを検証するデフォルトの方法は、ACME DNS チャレンジです。この方法は、全ての種類のドメイン (apex, subdomains, and wildcards) で有効です。この方法は、_acme-challenge サブドメインを Fastly に向けるだけです。これにより、本番トラフィックを Fastly に向ける前に TLS の設定をすることができます。

the cname to use for the acme dns challenge when verifying domain ownership

この検証方法を利用するためドメインに対してユニークな CNAME レコードを作成してください。対象レコードとターゲットの情報が、TLS ドメインリストにあるドメイン名の上にある What’s next に表示されます。

CNAME レコードを作成する方法は、DNS プロバイダーのコントロールパネルによって様々です。実施方法については、DNS プロバイダーのドキュメントをご参照ください。CNAME レコードは、_acme-challenge.DOMAIN_NAME (例 _acme-challenge.www.example.com) のフォーマットで、対象ドメインに対して固有な値 (例 domain_token.fastly-validations.com) に向けてなければなりません。設定した _acme-challenge サブドメインに対する CNAME レコードは、サービスの中断を防ぐためにそのまま残しておくことを推奨します。

ACME HTTP チャレンジのドメイン検証

ドメイン検証の別の方法として、ACME HTTP チャレンジを利用できます。この方法は、apex ドメインとサブドメインにのみ利用できます(ワイルドカードドメインは、DNS チャレンジのみを利用できます)。この方法は、商用トラフィックを直ちに Fastly に向けることになります。

この検証方法を利用するため、TLS ドメインリストにあるドメイン名の上にある What’s nextAlternative domain verification method(s) リンクをクリックしてください。検証オプション画面が表示されます。:

the alternative domain verification methods that appear when you click the associated link in the what's next notification above your domain's name in the list of tls domains

要望に合致している検証方法を選択してください。:

  • サブドメインでは、Fastly ホスト名に直接向けている CNAME レコードを作成してください。
  • apex ドメインでは、通知された IP アドレスを用い対象ドメインに対して A レコードを作成してください。

両方の場合において、一旦設定すると、商用トラフィックが直ちに Fastly 経由で流れ始めます。

ドメイン検証後

1時間以内に TLS が有効化されます。その際に以下にある TLS ステータスを確認することができます。:

TLS ステータス 説明
Checking domain DNS records…
Step 1 of 3
ドメイン検証が進行中です。Fastly は、証明書を追加するためのドメイン検証をするために DNS レコードを確認中です。次のステータスに遷移するため、ACME チャレンジを完了するための DNS レコード更新が実施されていることをご確認ください。
Certificate requested. Waiting for response from CA…
Step 2 of 3
ドメイン検証が確認済み。Fastly は、Fastlyに DNS レコードが向けられていることを確認し、認証局に証明書をリクエストしました。
TLS enabled (certificate being deployed globally) 認証局から TLS 証明書が発行されました。新たに発行された証明書を Fastly グローバルネットワークに伝搬するために20分から1時間かかります。

トラブルシューティング

1時間以上経過し、TLS 有効化がドメイン追加のあるステージで止まっている場合は、問題が発生している可能性があります。

DNS レコードを確認中ステータスで止まっている場合

Checking domain DNS records ステータスで止まっている場合は、ドメイン検証するための DNS レコードを正しく設定していない可能性があります。以下のような dig コマンドを用いてご確認ください。:

ACME チャレンジ コマンド
HTTP dig www.example.com +short
DNS dig _acme-challenge.www.example.com +short

example.com は、DNS レコードを設定したホスト名に変更してください。

もし DNS レコードを正しく設定している場合は、ドメイン検証 手順にある CNAME か A レコードのどちらかがコマンドの実行結果に表示されます。

もし DNS レコードを直近で追加、変更した場合は、その変更がインターネット上に展開されるのに最大72時間かかる可能性があります。それでも該当情報が見えない場合は、DNS レコードを誤っている可能性があります。

もしそれでも問題が継続している場合は、該当ドメインにおいて CAA レコードにより証明書発行することから認証局をブロックしている可能性があります。Certification Authority Authorization (CAA) レコードは、ドメインに対し証明書発行を許可する認証局を指定することに用いられます。CAA レコードが存在する場合、Fastlyマネージド TLS 証明書を利用するために該当レコードを削除する必要があります。

証明書要求ステータスで止まっている場合

Waiting for a response from CA ステータスで止まっている場合は、認証局において一時的な問題が発生している可能性があります。1時間経過してもステータスが変わらない場合は、support@fastly.com にサポート依頼をしてください。新しい証明書のリクエストの場合は、削除してはじめからやり直しをすることで解決する可能性があります。

TLS 有効化後に証明書が展開されない

TLS enabled ステータスだが、証明書が展開されていることが確認できない場合は、Fastly ネットワークにまだ展開中の可能性があります。完全に展開されるには、20分から1時間かかります。1時間経過しても展開が確認できない場合は、support@fastly.com にサポート依頼をしてください。

HTTPS トラフィックを配信するための DNS 設定

証明書展開が完了し、HTTPS で安全はトラフィック配信を実施するために次の手順に従ってください。

the domain details shown by clicking more details when tls traffic hasn't started flowing yet

  1. TLS ドメインインターフェースを用いて追加したドメインが正しく Fastly サービスに設定されていることをご確認ください。
  2. 新たに追加された証明書の IP アドレスにトラフィックを向けるため、DNS レコードの設定をしてください。全ての DNS 情報は、(CNAME, A レコード, オプションとして AAAA レコード) 該当ドメインに対する TLS 設定情報を表示するための More details をクリックすることで確認できます。ドメイン検証のために HTTP チャレンジを利用した場合は、すでにトラフィックを証明書に向けています。

もし、カスタムマップや複数の専用 IP をお持ちの場合は、ドメインと証明書は、1つ以上の TLS 設定を利用するように設定することができます。より詳細な情報は、DNS と TLS 設定の管理 をご参照ください。

TLS 無効化と TLS ドメインの削除

TLS を有効化したドメインは、TLS ドメインページのリスト上にあるドメインに Disable TLS リンクが表示され TLS を無効化することができます。無効化した場合、Fastly は、該当ドメインにおいて TLS トラフィックによる配信ができなくなります。Fastly は、無効化したドメインに対しても証明書更新を実施します。証明書更新を防ぐため、無効化後にドメインの削除を実施する必要があります。削除されたドメインは、Fastly では証明書更新を実施いたしません。

証明書の管理と更新

Let’s Encrypt は、90日間有効な証明書を発行します。Fastly は、60日後にドメインの再検証と証明書更新を実施します。もし DNS が Fastly に向けられてない場合や、CAA レコードが Let's Encrypt をブロックしている場合は、90日間の最終日に証明書は失効します。

有効期限が切れる 30日前、Fastly は、TLS 管理権限がある全ユーザに対して自動通知メールを送り、有効期限切れが間近であることを通知します。更新の失敗が継続している場合、有効期限日までメール送信を継続します。

ドメイン検証のための正しい DNS レコードが設定されている場合や、CAA レコードによるブロックもない場合で、更新失敗のメールを受信し続けている場合は、support@fastly.com にご連絡ください。

Back to Top