Background

Recently when helping a client to configure the SSO page to our collaboration and communication software, I found an interesting situation. The landing page can be opened on both iOS and PC, but a white screen appears on Android devices.

The client's error message is as follows:

{... "Ssl_Err_Info": {proceed: false, sslError=primary error: 3, ...} ...}

So, what is the magic number 3?

In Android, it means the certificate is not trusted.

Untitled

A further question, why the certificate is trusted on iOS and PC but not Android?

Prerequisite concept

Open the certificate information of a website from chrome, we could see most of the certificates are in a three-level structure.

Untitled

1. DigiCert Global Root CA → Root certificate

Every device includes something called a root store. A root store is a collection of pre-downloaded root certificates

2. RapidSSL Global → Intermediate Certificate

The certification authority(CA) does not issue the certificates directly to the websites because this is dangerous. Those roots are too valuable and there’s just too much risk like mis-issuance.

Hence, CAs generally issue what is called an intermediate root. Those intermediate certificates can then be used to sign the server’s SSL certificate.