TLS 終端

TLS 終端されたリクエストの識別

Fastlyでは、最適なキャッシュパフォーマンスを維持するため、キャッシュエンジンとは別の TLS ターミネーターを使用します。しかし、これでは元々 TLS リクエストであったことをキャッシュエンジンは識別できません。そのため、Fastly はお客様のサーバーからコンテンツを取得する際に Fastly-SSL ヘッダーを設定しています。

このヘッダーを設定したため、次のようなものを vcl_recv サブルーチンに含めることで、バックエンドでのヘッダーの存在を確認することができます。

1
2
3
if (req.http.Fastly-SSL) {
set resp.http.X-Is-SSL = "yes";
}

これにより、リクエストが TLS リクエストかどうかが分かります。

WordPress を使用する場合

Fastly TLS サービスを WordPress で使用している場合、WordPress が CSS や JS アセットの URL を正しく構築できるよう HTTP_FASTLY_SSL ヘッダーのチェックを追加することをお勧めします。そのためには以下のように wp-config.php ファイルにチェックを置き、後でチェックされる SSL フラグをオーバーライドするようにします。

1
2
3
if (!empty( $_SERVER['HTTP_FASTLY_SSL'])) {
$_SERVER['HTTPS'] = 'on';
}

通常どおり、これは wp-settings.php を含む require_once 行より前のどこかに置かなければなりません。

TLS 終端の使用時に元の IP アドレスを特定する

Fastly はパフォーマンス向上のため、キャッシュエンジンとは別に TLS ターミネーターを使用しており、復号化されるとオリジンサーバーへの再リクエストによりエンジンが元の IP アドレスを一時的に上書きし、元の IP アドレスを参照するものはすべて 127.0.0.0/8 の IP アドレス として表示されます。以下のようにして VCL で元の IP アドレスを特定することができます。

  • オリジンシールドを使用している場合は req.http.Fastly-Client-IP を使用します
  • オリジンシールドを使用しない場合や ACL を構築している場合は client.ip を使用します

また Fastly はクライアント IP アドレスを Fastly-Client-IP の HTTP ヘッダーでオリジンに送信し、サーバーソフトウェアはこれを使用して必要に応じて調整することができます。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。