Hi everyone,
Here's a bunch of information I put together to clarify this topic. I hope it helps anyone looking for a clear explanation.
The SHA-2 Root : USERTrust RSA Certification Authority certificate
is a Root "Certificate Authority" Certificate.
When your server (or any client actually) opens a connection using TLS to another server, a handsake occurs :
- The remote server sends a TLS/SSL certificate issued by a Certificate Authority (CA). This certificate is a proof of remote server identity.
- Your local system check the authenticity of this certificate using a its "Trust Store". This store contains a list of certificate authorities (CA) and their corresponding Root CA Certificates your system can trust. (It is basically like a whitelist.)
- If the receive TLS/SSL certificate has been issued by an authority (CA) your system trust and matches the corresponding Root CA certificate, the connection can carry on. Otherwise it is blocked for obvious security reasons.
The answer is no, these are 2 different concerns.
There was a lot of confusion these days between the "Certificate-based authentication" to APNS and the "Root CA Certificate". To clarify :
- The SSL certificate issued by Apple is used by your back-end app/service to authenticate to APNs (and also establish a TLS connection).
- The Root CA certificate is used to establish a secured connection to APNs only and prior any authentication.
Read more here : Establishing a certificate-based connection to APNs
Also note that your are maybe using Token (JWT) based authentication. In this case, you haven't performed anything with certificate signing requests and this completely ok. I'm also pretty sure Token based is recommended now.
If you are using a third-party service like Firebase, you probably don't have anything to do. The service you are using has probably already handled this.
If you are using your own back-end app/service to communicate with APNs and your hosting solution is PaaS, Serverless (or anything that is a service that manages system configuration for you), you also probably don't have nothing to do. Your hosting service is more likely to update the trusted stores on a regular basis. Otherwise contact your service support as you won't be able to update it yourself.
Finally, if you are using your own back-end app/service and hosting it on a system you manage (like a dedicated server, VPS, etc...), you must :
- Check if the USERTrust RSA Certification Authority certificate is already in your Trust Store.
- If it is included, great you don't have anything to do. Otherwise, you need to add it.
The operation may vary depending on the OS installed on your server. Also note that you may already have this Root CA Certificate installed if your system it is up-to-date.
If you spot any inaccuracies, feel free to share your corrections or additional clarifications in the comments. Thank you!