[Potential service disruption] — Upcoming SSL certificate expiration could impact channel operations
This Saturday, May 30 at 10:48:38 2020 GMT, the widely-used "AddTrust External CA Root” certificate will expire. If your Roku channel still includes this certificate at this time it will have connection issues. These issues may manifest themselves in a variety of ways, including failures with channel launches, video playback, image rendering, or analytics.
Here are some details about the expiration and how it impacts OpenSSL 1.0.0 platforms like Roku OS:
Certificates that have multiple chains of trust where the "AddTrust External CA Root” certificate is in only one trust chain will get an SSL handshake failure on Roku OS, but not on other platforms that can authenticate the second trust chain.
Please check that the trust chain for any SSL certificates used to support your channel do not include the "AddTrust External CA Root" certificate. You can check this by hitting the SSL endpoints your channel uses with the script shown at the bottom of this post. The script must run on in a linux environment with OpenSSL installed.
If you find a cert that lists the "AddTrust External CA Root" certificate, please update the certificate to avoid any connection issues. As an exception to our standard policy, Roku will publish channel updates that resolve issues related to this cert expiration throughout the weekend. If you submit a channel update during the weekend, please also open a ticket with our Partner Success team to request that they publish your channel.
If it is impossible for you to update the certificate and you could avoid validating the trust chain on a connection, you could modify your BrightScript channel using: roUrlTransfer.EnablePeerVerification(False)
Please be sure to share this message with your Roku engineering team. If you have any questions pertaining to this issue, you can submit a question to Roku’s Partner Success team.
Thanks for your prompt attention to this issue. Below is the script you can use to hit your SSL endpoints:
#/bin/bash openssl s_client -no_alt_chains -showcerts -verify 5 -servername ${1} -connect ${1}:443 < /dev/null | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}' && for cert in *.crt; do newname=$(openssl x509 -noout -subject -in $cert | sed -n 's/^.*CN=\(.*\)$/\1/; s/[ ,.*]/_/g; s/__/_/g; s/^_//g;p').pem; mv $cert $newname; done