SUPPORT.TWILIO.COM END OF LIFE NOTICE: This site, support.twilio.com, is scheduled to go End of Life on February 27, 2024. All Twilio Support content has been migrated to help.twilio.com, where you can continue to find helpful Support articles, API docs, and Twilio blog content, and escalate your issues to our Support team. We encourage you to update your bookmarks and begin using the new site today for all your Twilio Support needs.

Twilio REST API に接続するための要件と一般的な問題のトラブルシューティング

Twilioのインフラストラクチャへのすべての接続は、使用する製品やアクセスするサブドメインに関係なく、同じ接続要件があります。このガイドでは、Twilio REST API に接続するための環境設定と、よくある問題のトラブルシューティングについて説明します。

注意 現在発生している問題については、必ず Twilio のステータスページを確認してください。

接続要件

  1. HTTPS
  2. IPアドレス
  3. TLSバージョンと暗号スイート
  4. 証明書チェーン

HTTPS

REST APIへのトラフィックはすべて標準ポート443のHTTPSを使用し、ウェブブラウザを含むあらゆるHTTPクライアントからアクセス可能です。

要件 : ファイアウォールとプロキシは、REST APIに接続するためにポート443上のアウトバウンドHTTPSトラフィックを許可する必要があります。

ヒント:お使いの端末が https://api.twilio.com/ をブラウズできる場合、ネットワークはアクセスを許可しています。

IPアドレス

Twilioのクラウドインフラストラクチャは、Amazon Web Services (AWS) の幅広いIPアドレスからREST API用のIPアドレスを動的に割り当てますが、これらのIPアドレスは事前の通知なしに変更される可能性があります。

要件 ファイアウォールおよびプロキシは、パブリックIPアドレスへのHTTPSトラフィックを許可するか、Twilioのサブドメイン(例:api.twilio.com)を許可する必要があります。

ヒント: DNSキャッシュがTwilioのTTL (60秒)を尊重していることを確認してください。

TLSバージョンと暗号スイート

 TwilioのREST APIは現在TLS v1.2のみをサポートしています。それ以前のバージョンのサポートは2019年6月に削除されました。詳細については、2019年6月のTwilio REST APIのTLSと暗号スイートセキュリティの変更(英語)をご覧ください。

要件 : HTTPクライアントは、サポートされているTLSバージョンと暗号スイートをネゴシエートする必要があります。

ヒント : Twilio REST APIで現在サポートされているTLSバージョンと暗号スイートの完全な詳細はSSL Labsから入手できます。

証明書チェーン

 安全な接続を確立するために、HTTPクライアントは証明書チェーンとルートオーソリティを確認する必要があります。業界で信頼されているルート証明書は、ほとんどのHTTPクライアントソフトウェアパッケージに自動的にバンドルされており、通常追加の設定は必要ありません。

完全な証明書チェーンとルートオーソリティは、ブラウザのセキュリティアイコンをクリックすることで確認できます:(下記例参照)

要件 : HTTPクライアントは、ローカルトラストストアにTwilioのルート証明書がインストールされている必要があります。

ヒント: 手動でインストールする場合は、最新のMozilla信頼証明書バンドルをダウンロードしてください。

注意 : 証明書を固定(ピニング)することは非推奨です。将来証明書が変更された場合、お客様のアプリケーションが正常に動作しなくなる可能性がございます。こちらもご覧ください: Twilio REST APIセキュリティ設定の更新を監視する(英語)

カスタムRESTクライアント: パブリックインターネットに接続するためにプロキシサーバーを使用する必要がある場合、またはその他のカスタム接続要件がある場合、カスタムRESTクライアントを作成し、Twilioヘルパーライブラリに渡すことで、特定のニーズに対応できます。下記のプログラミング言語に対応しています。

よくある問題のトラブルシューティング

REST API 接続の問題をトラブルシューティングする場合、いくつかの異なるエラーシグネチャ、原因、および解決策を考慮する必要があります。

ヒント: 診断ツールとユーティリティについては、TwilioのREST APIへの接続問題を診断するためのリソース(英語)を参照してください。

  1. 接続タイムアウト
  2. HTTP レスポンスがタイムアウトするが、Twilio エラーコードがない
  3. HTTP レスポンスなしのタイムアウト
  4. SSL/TLS エラー
    1. チェーンの問題
    2. ハンドシェイクの失敗
    3. ドメイン名の不一致

接続タイムアウト

Twilio エラーコード 20500 のタイムアウト

Twilio の REST API への接続に成功したものの、タイムリーに完了できなかったリクエストは、Twilio 側から 26 秒でタイムアウトし、HTTP 500 ステータスコードと Twilio エラーコード 20500 を返します。

考えられる原因

  • PageSize=1000 での大きなデータセットのページング
  • FriendlyName による大きなリストの検索

可能な解決策

  • PageSize=50 に設定する
  • FriendlyNameの代わりにSIDで検索する
  • Twilioのログデータを独自のデータベースに保存し、クエリを実行する。

ヒント: Error 20500が頻繁に表示され、ステータスページに問題がない場合は、Twilioカスタマーサポートまでお問い合わせください。

HTTP レスポンスがタイムアウトするが、Twilio エラーコードがない

 本文にTwilio固有のエラーコードがなく、タイムアウトしてHTTPレスポンスを返すリクエストは、パブリックインターネットに到達する前に、ローカルネットワーク要素(例:企業のプロキシ)で問題が発生した可能性が高いです。

考えられる原因

  • ウェブプロキシがトラフィックをブロックしている (4xx ステータスコード)
  • WebプロキシがTwilioのタイムアウトより早くタイムアウトする(5xxステータスコード)

可能な解決策

  • WebプロキシがTwilioへのHTTPSトラフィックを許可するように設定されていることを確認する。
  • HTTPクライアントでWebプロキシの認証情報と接続要件を設定する (例: TwilioヘルパーライブラリのJava用カスタムクライアント)
  • 問題の切り分けのため、別のネットワークから接続してみる。

HTTP レスポンスなしのタイムアウト

 HTTP応答がなくタイムアウトするリクエストは、ローカルネットワークまたはISP接続の問題によるものです。

考えられる原因

  • インターネットに接続できない
  • ファイアウォールがHTTPSトラフィックをブロックしている
  • 必要なウェブプロキシが設定されていない
  • DNS解決に失敗している

考えられる解決策

  • クライアントが公衆インターネットにアクセスできることを確認する。
  • ファイアウォールとウェブプロキシがTwilioへのHTTPSトラフィックを許可していることを確認する。
  • DNSプロバイダとISPがTwilioのTTL設定(60秒)を遵守していることを確認する。
  • 問題の切り分けのため、別のネットワークまたはマシンから接続してみる。

SSL/TLS エラー

チェーンの問題

 “Unable to find valid certification path to requested target,など、証明書チェーンの問題を説明するクライアントエラーは、通常リモート証明書が信頼されていることを検証するために、Twilioのルート証明書がローカルで利用できないことを示します。

考えられる原因

  • Twilioのルート証明書がローカルトラストストアにインストールされていない。
  • クライアントがローカルトラストストアへの間違ったパスを参照している

可能な解決策

注意 : 将来証明書が変更された場合、アプリケーションが正常に動作しなくなる可能性がございます。こちらもご覧ください: Twilio REST APIセキュリティ設定の更新を監視する(英語)

危険 :  HTTPクライアントで証明書の検証を無効にしないでください。リクエストによって悪意のあるサードパーティに接続される可能性があります。

ハンドシェイクの失敗

SSL/TLSハンドシェイクの失敗は通常、クライアントがREST APIで要求されるTLSバージョンまたは暗号スイートをサポートしていないことを示します。

考えられる原因

  • クライアントが正しいTLSバージョンをサポートしていない
  • クライアントが利用可能な暗号スイートに対応していない

考えられる解決策

ヒント: HTTPクライアントでSSL/TLSデバッグが有効になっていれば、失敗の低レベルの詳細を得られます。Javaの例: SSL/TLS接続のデバッグ(英語)

ドメイン名の不一致

ドメイン名の不一致エラーは、リモートホストが提示した証明書が要求されたドメイン名と一致しなかったことを意味します。

考えられる原因

  • DNSエントリが古く、以前のTwilio IPアドレスがTwilio以外のホストに再割り当てされている。
  • ウェブプロキシがリクエストルーティングを妨害している
  • 中間者攻撃を試みる悪意者

可能な解決策

  • ローカルネットワークのDNSキャッシュをクリアする
  • DNSプロバイダとISPがTwilioのTTL設定(60秒)を尊重していることを確認する
  • WebプロキシがリクエストをTwilioに正しくルーティングしていることを確認する
  • 問題の切り分けのため、別のネットワークから接続してみる

危険 :  HTTPクライアントで証明書の検証を無効にしないでください。リクエストによって悪意のあるサードパーティに接続される可能性があります。

Twilio カスタマーサポート

サポートが必要でございましたら コンソールからのサポートチケット作成・申請方法 を参照の上チケットを作成くださいませ。

Have more questions? Submit a request
Powered by Zendesk