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

TLS を利用しオリジンサーバーに接続する場合, 以下のようなエラーになる場合があります。

ホスト名のアンマッチ

  • Error: Hostname mismatch

エラー発生原因

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

解決方法

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

  1. Fastly コントロールパネルにログインし。
  2. All services ページから適切なサービスを選択します。検索ボックスを使用すると、ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、オプションを選択してアクティブバージョンをクローンします。設定画面が開きます。
  4. Origins のリンクをクリックし、Origins 設定画面を開きます。
  5.  対象ホストの横にある鉛筆マークをクリックしてください。当該ホストの設定を編集するページが表示されます。
  6.  Certificate Hostname の枠に TLS 証明書に関連するホスト名を入力してください。入力する値は、オリジンサーバー上のお客様が発行した証明書にあるコモンネーム (CN) もしくはサブジェクトの別名 (SAN) のどれかと一致している必要があります。例えば、オリジンサーバーの証明書の CN に www.example.com が設定されている場合、その値を入力ください。
  7.  Update ボタンをクリックしてください。
  8. Activate ボタンをクリックしてサービスをデプロイします。

カスタム VCL を利用している場合、backend パラメーターの .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 で利用しているどの認証局 (CAs) を使っても検証できなかった証明書チェーンをオリジンサーバーに設定しています。次の2つの理由により発生します:

  • 証明書が自己署名または、自己発行証明書であり、証明書検証を可能とするための設定として Fastly に CA 証明書を設定しなかった。
  • CA により発行された証明書であるが、Fastly で 当該 CA 証明書を利用していなかった。

解決方法

どちらの場合も、Fastly が証明書検証に利用するように、サービス設定において CA 証明書を追加することで解決します:

  1. Fastly コントロールパネルにログインし。
  2. All services ページから適切なサービスを選択します。検索ボックスを使用すると、ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、オプションを選択してアクティブバージョンをクローンします。設定画面が開きます。
  4. Origins のリンクをクリックし、Origins 設定画面を開きます。
  5. 対象ホストの横にある鉛筆マークをクリックしてください。当該ホストの設定を編集するページが表示されます。
  6.  TLS CA certificate フィールドに PEM フォーマットの CA 証明書を貼り付けてください。
  7.  Update ボタンをクリックしてください。
  8. Activate ボタンをクリックしてサービスをデプロイします。

カスタム VCL を利用している場合、PEM エンコードの CA 証明書を backend パラメーターの .ssl_ca_cert に設定することで 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.2、TLS 1.1およびTLS 1.0をサポートします。.
  • オリジンサーバーへの接続性を確認ください。例えば、 TLS 1.2をご利用の場合には、次のコマンドをご利用くださいecho Q | openssl s_client -connect ${IP}:443 -tls1_2。 他の TLS バージョンをご利用の場合には、-tls1_2-tls1_1-tls1_0 に変更してください。もし TLS の接続に成功した場合には、証明書、サブジェクト、発行者、などの情報が表示されます。
  • sslscan を利用することで、TLS サーバーでサポートしている TLS プロトコルや Cipher が確認できます。

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

  1. Fastly コントロールパネルにログインし。
  2. All services ページから適切なサービスを選択します。検索ボックスを使用すると、ID、名称、ドメインでの検索が行えます。
  3. Edit configuration ボタンをクリックし、オプションを選択してアクティブバージョンをクローンします。設定画面が開きます。
  4. Origins のリンクをクリックし、Origins 設定画面を開きます。
  5. 対象ホストの横にある鉛筆マークをクリックしてください。当該ホストの設定を編集するページが表示されます。
  6.  Enable TLS?No, do not enable TLS. を選択してください。
  7.  Update ボタンをクリックしてください。
  8. Activate ボタンをクリックしてサービスをデプロイします。

RC4 cipher エラー

  • Error: Using RC4 Cipher

エラー発生原因

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

解決方法

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

Back to Top