Twilioのインフラストラクチャへのすべての接続は、使用する製品やアクセスするサブドメインに関係なく、同じ接続要件があります。このガイドでは、Twilio REST API に接続するための環境設定と、よくある問題のトラブルシューティングについて説明します。
注意 現在発生している問題については、必ず Twilio のステータスページを確認してください。
接続要件
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への接続問題を診断するためのリソース(英語)を参照してください。
接続タイムアウト
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のルート証明書がローカルトラストストアにインストールされていない。
- クライアントがローカルトラストストアへの間違ったパスを参照している
可能な解決策
- 標準の Mozilla 証明書バンドルをローカルトラストストアにインストールする。
- クライアントがローカルトラストストアへの正しいパスを参照していることを確認する。
- トラブルシューティングガイドをご覧ください: Twilio REST API からの証明書エラーのトラブルシューティング(英語)
注意 : 将来証明書が変更された場合、アプリケーションが正常に動作しなくなる可能性がございます。こちらもご覧ください: Twilio REST APIセキュリティ設定の更新を監視する(英語)
危険 : HTTPクライアントで証明書の検証を無効にしないでください。リクエストによって悪意のあるサードパーティに接続される可能性があります。
ハンドシェイクの失敗
SSL/TLSハンドシェイクの失敗は通常、クライアントがREST APIで要求されるTLSバージョンまたは暗号スイートをサポートしていないことを示します。
考えられる原因
- クライアントが正しいTLSバージョンをサポートしていない
- クライアントが利用可能な暗号スイートに対応していない
考えられる解決策
- HTTPクライアントが最新バージョンにアップデートされていることを確認する。
- クライアントのマニュアルを参照して、特定のTLSバージョンと暗号スイートを有効にしてください。
- SSL LabsでTwilioがサポートしているTLSバージョンと暗号スイートを確認する。
- TLSアップグレードガイドに従ってください: Twilio REST APIのTLSと強力な暗号スイートの変更に対応するための環境アップグレードのヒント(英語)
ヒント: HTTPクライアントでSSL/TLSデバッグが有効になっていれば、失敗の低レベルの詳細を得られます。Javaの例: SSL/TLS接続のデバッグ(英語)
ドメイン名の不一致
ドメイン名の不一致エラーは、リモートホストが提示した証明書が要求されたドメイン名と一致しなかったことを意味します。
考えられる原因
- DNSエントリが古く、以前のTwilio IPアドレスがTwilio以外のホストに再割り当てされている。
- ウェブプロキシがリクエストルーティングを妨害している
- 中間者攻撃を試みる悪意者
可能な解決策
- ローカルネットワークのDNSキャッシュをクリアする
- DNSプロバイダとISPがTwilioのTTL設定(60秒)を尊重していることを確認する
- WebプロキシがリクエストをTwilioに正しくルーティングしていることを確認する
- 問題の切り分けのため、別のネットワークから接続してみる
危険 : HTTPクライアントで証明書の検証を無効にしないでください。リクエストによって悪意のあるサードパーティに接続される可能性があります。
Twilio カスタマーサポート
サポートが必要でございましたら コンソールからのサポートチケット作成・申請方法 を参照の上チケットを作成くださいませ。