As of June 26, 2019, Twilio has deprecated TLS v1.0, v1.1 and weak cipher suites on our REST APIs. This guide contains information about what is currently supported, as well as frequently asked questions regarding this change.
What TLS versions and cipher suites are currently supported?
As of June 26, 2019, Twilio only supports TLS v1.2, and the following cipher suites:
Why were TLS v1.0, v1.1 and weak cipher suites deprecated?
Security best practices strongly advise against the use of early TLS for secure communications on the web. As a consequence, the Twilio made the decision to no longer support SSL or early TLS versions prior to v1.2 for our REST APIs. We also simultaneously removed weak cipher suites to maintain the highest standard of security for our customers.
Frequently asked questions (FAQ)
- How do I test whether the change will affect my environment?
- Do I need to test if I’m using one of Twilio’s Helper Libraries?
- How do I force the Twilio helper library to use port 8443?
- Do I need to test every REST API endpoint and method?
- What if I get errors while testing api.twilio.com:8443?
- Which IPs should we allow for connecting to port 8443 in our firewall?
- Which cipher suites will be supported by the REST API after the changes are implemented?
- Will this affect webhooks or status callbacks from Twilio?
- I see SSL Certificate Validation is enabled on my account in the Twilio Console. Does that mean I’m already compliant with these security changes?
- I use a cloud-based vendor application to run my Twilio services and I don't have any control over their technology. How do I know if they are affected?
- How can I be notified automatically of future security changes to the REST API?
The best way to determine if your environment is affected by the TLS or cipher suite changes is to make a simple HTTP request to the Twilio REST API test endpoint at port 8443 ( https://api.twilio.com:8443/). If the command works successfully, no changes will be necessary for your environment.
Use our test procedures and code snippets to test your system’s compatibility.
Note: It is important that this test be made from your production environment or an identical test environment.
Yes. The Twilio helper libraries rely on the underlying security components installed on your operating system. While Twilio has tested the helper libraries for compatibility with these changes, your environment may be different.
Please use our provided code snippets to test the Twilio helper libraries on port 8443. Be sure to use the snippet that matches your version of the helper library.
No. You only need to make a single request to the test endpoint on port 8443 to ensure your system can connect over HTTPS using the TLS and cipher suite changes.
Learn more about testing your integration with Twilio on port 8443.
Most likely the errors you receive will be due to having an OpenSSL library version which does not offer support for TLSv1.2. To correct this, you should update your operating system’s OpenSSL library and rebuild the dependencies that are failing.
Review all our tips for upgrading your environment.
Twilio’s REST API uses dynamic IP addresses. They are selected from a large range of Amazon Web Services (AWS) IP addresses, and are liable to change without advance notice. We recommend you restrict by domain name instead of IP addresses (i.e., api.twilio.com).
Otherwise, you can temporarily allow all outbound HTTPS traffic to port 8443 to perform the tests and then re-implement the block on that port when testing is complete.
Once the changes are implemented, the Twilio REST API will only support the following protocols and cipher suites for encrypted communication:
TLSv1.2: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (ECDHE-RSA-AES128-SHA) TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (ECDHE-RSA-AES128-SHA256) TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ECDHE-RSA-AES128-GCM-SHA256) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (ECDHE-RSA-AES256-SHA) TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (ECDHE-RSA-AES256-SHA384) TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ECDHE-RSA-AES256-GCM-SHA384)
The changes to TLS versions and cipher suites do not affect TwiML webhooks or status callbacks. These changes only apply to requests made to the Twilio REST API.
Learn more about the protocols and ciphers supported by TwiML requests and status callbacks.
No. SSL Certificate Validation does not affect requests from your application to the REST API. That setting is only used for TwiML webhooks and status callbacks from Twilio back to your server. Webhooks and callbacks are not affected by these REST API security changes.
We have already contacted all Twilio accounts who are known to be affected. If you have additional concerns, please contact your vendor directly and reference our published notification of these changes.
At least one month in advance of any REST API security change, we will post the new "to be upgraded" certificate and configuration on port 8443 of all of our API endpoints (e.g., api.twilio.com:8443).
We recommend you test that endpoint on a regular basis to ensure your software can connect with the updated certificate and settings.
Learn more about monitoring Twilio security changes on port 8443.
- Monitoring Updates to the Twilio REST API Security Settings
- Tips for Upgrading Your Environment to Support Twilio REST API’s TLSv1.2 and Strong Cipher Suite Changes
If you need assistance beyond these resources, please contact our Support Team.