TLS オリジンサーバーのエラーメッセージ

TLS 経由でオリジンサーバーに接続する場合、以下のようなエラーが発生する場合があります。

ホスト名の不一致

  • Error: Hostname mismatch

エラーの発生原因

オリジンサーバーから配信される TLS サーバー証明書にあるコモンネーム (CN) またはサブジェクトの別名 (SAN) のリストと、オリジンサーバーのホスト名または、オリジンサーバーの SSL ホスト名設定が一致しません。

解決方法

オリジンサーバーにある証明書の CN または SAN にあるホスト名に Fastly の設定を一致させることで解決することができます。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. Origins をクリックします。
  5. 鉛筆のアイコンをクリックして、対象となるホストを編集します。
  6. Certificate Hostname フィールドに TLS 証明書に紐付くホスト名を入力してください。この値は、発行された証明書によって証明書のコモンネーム (CN) もしくはサブジェクトの別名 (SAN) に対して照合されます。例えば、証明書の CN に www.example.com が設定されている場合、ホスト名にはその値を入力します。
  7. Update をクリックします。
  8. Activate をクリックして設定への変更をデプロイします。

カスタム VCL を使用する場合、オリジンの定義の .ssl_cert_hostname フィールドを利用することで、証明書と一致するホスト名を指定することができます。例:.ssl_cert_hostname = www.example.com;

証明書チェーンの不一致

  • Error: unable to verify the first certificate
  • Error: self signed certificate
  • Error: unable to get local issuer certificate
  • Error: self signed certificate in certificate chain
  • Error: unable to get issuer certificate

エラーの発生原因

Fastly で利用しているどの認証局 (CA) を使っても検証できなかった証明書チェーンがオリジンサーバーに設定されています。以下の2つの理由により発生します。

  • 証明書が自己署名、または自己発行の証明書であり、Fastly による検証を可能にする CA 証明書が Fastly に提供されていない。
  • CA によって発行された証明書であるものの、Fastly で当該 CA の証明書がサポートされていない。

解決方法

いずれの場合も、Fastly が証明書の検証に使用できる CA 証明書をお客様のサービス設定に追加することで解決できます。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. Origins をクリックします。
  5. 鉛筆のアイコンをクリックして、対象となるホストを編集します。
  6. TLS CA certificate フィールドに PEM 形式の CA 証明書をコピーアンドペーストします。
  7. Update をクリックします。
  8. Activate をクリックして設定への変更をデプロイします。

カスタム VCL を使用している場合、バックエンドパラメーターの .ssl_ca_cert に PEM エンコードされた CA 証明書を設定することで、Fastly が使用する CA を指定することができます。

あるいは、Fastly が利用している CA (例: Globalsign) から新たに証明書を取得してオリジンサーバーに設定することでも解決できます。

接続の失敗

  • Error: Gethostbyname
  • Error: Connection timeout
  • Error: Connection refused

各エラーの発生原因と解決方法

Gethostbyname エラーは、設定したオリジンサーバーのホスト名が NXDOMAIN として応答していることを示しています。オリジンサーバー名に対する DNS 設定が正しいか再確認してください。

Connection time out エラーは、オリジンサーバーへの接続でタイムアウトが発生していることを示しています。オリジンサーバーのアクセス可否状況とレスポンスの応答時間が適切かを再確認してください。

Connection refused エラーは、ファイアウォールやネットワーク ACL によりオリジンサーバーへの接続が拒否されている可能性があることを示しています。Fastly の IP アドレスが認証リストに追加されていることと、お客様のオリジンサーバーが Fastly のネットワークからアクセス可能であることを再確認してください。

証明書期限切れ

Error: Certificate has expired

エラーの発生原因

オリジンサーバーにインストールされている証明書が有効期限切れとなっており、有効期限内の証明書に置き換える必要があります。

解決方法

自己署名証明書の場合、保有している秘密鍵で発行した CSR から自分で証明書を作成し、オリジンサーバーにインストールすることで解決します。

CA が署名した証明書の場合、保有している秘密鍵で新しい CSR を発行し、CA に署名を依頼します。CA によって署名された証明書をオリジンサーバーにインストールすることで解決します。

SSL と古い TLS プロトコルのエラー

  • Error: Unknown protocol
  • Error: SSL handshake failure
  • Error: TLSv1 alert internal error

エラーの発生原因

オリジンサーバーが TLS を利用するように設定されていなかったり、古いバージョンのプロトコルのみをサポートしている場合にエラーが発生します。Fastly では SSLv2 または SSLv3 はサポートしていません。

解決方法

オリジンサーバーが TLS を利用するように設定されている場合、問題を解決するため、以下を参考にしてください。

  • オリジンサーバーのソフトウェアが最新であることと、お客様のプラットフォームまたはオペレーションシステムで最新バージョンの TLS ライブラリーが使用されていることをご確認ください。新しいバージョンのプロトコルを明示的に有効にする必要がある場合があります。Fastly は TLS 1.3、1.2、1.1、および 1.0 をサポートします

  • オリジンサーバーに接続できることをご確認ください。例えば、TLS 1.3 を使用する場合は、以下のようなコマンドを入力します。

    $ echo Q | openssl s_client -connect ${IP}:443 -tls1_3

    他のバージョンの TLS をテストする場合は、-tls1_3tls1_2-tls1_1、または -tls1_0 に置き換えてください。TLS の接続に成功すると、証明書、サブジェクト、発行者、およびその他の診断情報が表示されます。

  • sslscan を利用することで、TLS サーバーがサポートしている TLS プロトコルと暗号スイートを確認できます。

オリジンサーバーが TLS を利用するように設定されていない場合、お客様のサービスの設定で TLS を無効にし、443ポートではなく80ポートで通信を行うように設定を変更してください。

  1. Fastly コントロールパネルにログインします。
  2. Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
  3. Edit configuration をクリックし、アクティブなバージョンをクローンするオプションを選択します。
  4. Origins をクリックします。
  5. 鉛筆のアイコンをクリックして、対象となるホストを編集します。
  6. Connect to backend using TLS メニューで No を選択します。
  7. Update をクリックします。
  8. Activate をクリックして設定への変更をデプロイします。

RC4 暗号のエラー

  • Error: Using RC4 Cipher

エラーの発生原因

Fastly がオリジンサーバーに TLS で接続した際に、接続を確立するためにオリジンサーバーがサポートしている暗号スイートが RC4 のみであったことが原因です。この暗号は一般的に安全ではないと考えられており、利用すべきでないとされています。

解決方法

オリジンサーバーにおいて、サーバーと TLS ライブラリ (OpenSSL など) の両方を最新にし、暗号スイートをベストプラクティスに合わせることで解決できます。RC4 暗号を明示的に除外設定する必要がある場合があります。


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

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