Fastly マネージド証明書を利用して HTTPS で配信する
Last updated November 20, 2019
このガイドでは、Fastly で管理する証明書を利用しドメインに対して HTTPS を有効にし Fastly TLS を利用する方法を説明します。Fastly マネージド証明書は、Let’s Encrypt から購入、更新をするために ACME プロトコル を利用します.
HTTPS を利用して Fastly から安全にトラフィックを配信するため、Web サイトやアプリケーションは、信頼済み認証局によって署名された有効な TLS 証明書をクライアントに提供する必要があります。TLS と SSL を利用することで、クライアントは安全なサーバーのコネクションを利用して HTTPS によりトラフィックを配信することができます。
ヒント: 弊社の TLS 購入 API を利用することで、Fastly TLS の登録をプログラミングにより管理することができます。
作業を始める前に
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 を設定をしてください。
- Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
- HTTPS and network タブをクリックしてください。TLS ドメインページが表示されます。このページでは、TLS が有効になっているドメインもしくは、有効にすることができるドメインが表示されます。まだどのドメインにも TLS 設定を始めていない場合は、このページでは何も表示されません。
-
Secure another domain ボタンをクリックしてください。ドメイン入力画面が表示されます。
- もし TLS 証明書と秘密鍵をお持ちの場合は、I want to bring my own certificate and private key リンクをクリックしてください。この手順の代わりにお持ちの証明書をアップロードし配置するためのガイドに従って実施してください。
- Domain name に apex ドメイン (例
example.com
)、サブドメイン (例www.example.com
またはapi.example.com
)、ワイルドカードドメイン (例*.example.com
) のいづれかを入力してください。 - オプションとして、複数のFastly IP アドレスをご利用していたり、 別のネットワークや TLS 設定を利用するために複数の Fastly CNAME レコードをお持ちの場合には、TLS configuration において適切なものを選択してください。このオプションにより、証明書を配置する IP アドレスおよび適用される関連する TLS 設定が決められます。
- Add domain ボタンをクリックしてください。TLS ドメインページでは、一連のカードが表示されます。そこには、各ドメインをリスト化されており、たった今追加したドメインや既存の TLS と証明書のステータスが含まれています。
ドメイン検証
HTTPS トラフィックを配信するため、Fastly では、コントロールパネルに追加したドメインがお客様の管理下にあることを検証する必要があります。Fastly では、apex ドメインとサブドメインを検証する方法は ACME DNS チャレンジ と ACME HTTP チャレンジ2種類を提供します。これらの方法は、特定の DNS 変更を必要とします。ワイルドカードドメインでは、DNS challenge タイプが必須です。
重要: Fastly は、ドメイン検証に対する ACME チャレンジを完了するためお客様のサービスと DNS の振る舞いを変更する可能性があります。
ACME DNS チャレンジのドメイン検証
Fastly マネージド TLS 証明書に追加するドメインを検証するデフォルトの方法は、ACME DNS チャレンジです。この方法は、全ての種類のドメイン (apex, subdomains, and wildcards) で有効です。この方法は、_acme-challenge
サブドメインを Fastly に向けるだけです。これにより、本番トラフィックを Fastly に向ける前に TLS の設定をすることができます。
この検証方法を利用するためドメインに対してユニークな 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 に向けることになります。
警告: ACME HTTP チャレンジでのドメイン検証方法は、TLS の設定が完了する前に全てのエンドユーザーのトラフィックを Fastly に向けてしまう恐れがあります。つまり、エンドユーザーがウェブサイトにアクセスするとブラウザーに非安全である警告が表示されるか、もしくは、該当ドメインにアクセスがまったくできなくなります。これを避けるため、この検証方法を利用する前に、Fastly サービスを適切に設定していることを確認し、強制 TLS リダイレクト を無効にしてください。
この検証方法を利用するため、TLS ドメインリストにあるドメイン名の上にある What’s next の Alternative domain verification method(s) リンクをクリックしてください。検証オプション画面が表示されます。:
要望に合致している検証方法を選択してください。:
- サブドメインでは、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 で安全はトラフィック配信を実施するために次の手順に従ってください。
- TLS ドメインインターフェースを用いて追加したドメインが正しく Fastly サービスに設定されていることをご確認ください。
- 新たに追加された証明書の IP アドレスにトラフィックを向けるため、DNS レコードの設定をしてください。全ての DNS 情報は、(CNAME, A レコード, オプションとして AAAA レコード) 該当ドメインに対する TLS 設定情報を表示するための More details をクリックすることで確認できます。ドメイン検証のために HTTP チャレンジを利用した場合は、すでにトラフィックを証明書に向けています。
もし、カスタムマップや複数の専用 IP をお持ちの場合は、ドメインと証明書は、1つ以上の TLS 設定を利用するように設定することができます。より詳細な情報は、DNS と TLS 設定の管理をご参照ください。
警告: 初期設定後に Fastly に向けていた DNS レコードを Fastly 以外に向くように変更した場合は、TLS で終端することができなくなります。また、90日後に有効期限が切れる証明書の更新も行われません。
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 にご連絡ください。
共有証明書から Fastly マネージド証明書への移行
Fastly の共有証明書からFastly TLS 製品に移行する場合、ドメインに対しての TLS 設定手順に従って行ってください。ドメイン検証において _acme-challenge
サブドメインを用いる ACME DNS チャレンジを利用する場合は、共有証明書に商用トラフィックをそのまま向けてください。
該当ドメインが TLS 有効状態になったら、少なくとも10分待ち、証明書がグローバルに展開されていることを確認し、共有証明書に向けている DNS レコードを変更してください。展開されていることを確認するには、以下のコマンドをご利用ください。:
1
openssl s_client -connect TLS.CONFIG.CNAME.RECORD:443 -servername your.domain.com | openssl x509 -noout -text | grep 'Subject: CN'
結果に TLS ホスト名が表示された場合、Fastly がマネージド証明書の生成、展開を実施したことを示しており、安全に DNS プロバイダー経由で DNS レコードを更新していただけます。
ワイルドカードドメインやサブドメインに共有証明書をご利用の場合には、CNAME レコードは shared.global.fastly.net
で終わる文字列のはずです。apex ドメインの場合は、A レコードを利用しているはずです。弊社ネットワークに証明書が展開されていれば、新しい証明書に DNS を向け共有証明書利用をやめるため、DNS を HTTPS トラフィックを配信するために向ける 手順にある DNS レコードを利用することができます。
DNS プロバイダーと該当ドメインの DNS レコードを変更後、次のコマンドを利用して、変更がローカル DNS リゾルバーに伝搬していることを確認してください。:
1
dig your.domain.com +short
ヒント: 有効期限 (TTL) 設定によりますが、インターネット中に DNS レコードが伝搬されるのに、最大72時間必要な場合があります。
DNS 情報が世界中で更新されたらすぐに、ブラウザーでドメインにアクセスし、どの証明書が配信されているかを確認してください。新しい証明書がクライアントに対して配信されていることが確認できたら、共有証明書を削除するために TLS ドメイン削除 手順に従ってください。
Back to Top