web-dev-qa-db-fra.com

Certificat SSL "err_cert_authority_invalid" sur le mobile chrome uniquement

Domaine: https://www.amz2btc.com

Analyse de SSL Labs: https://www.ssllabs.com/ssltest/analyze.html?d=amz2btc.com

Tous mes navigateurs de bureau ouvrent cette amende. Mobile Firefox ouvre cette amende. Ce n'est que lorsque j'ai essayé avec mobile Chrome que j'ai eu l'erreur suivante: err_cert_authority_invalid

Je connais très peu de choses sur SSL, je ne peux donc pas vraiment comprendre le rapport SSL ou la raison de cette erreur. Si quelqu'un pouvait ELI5, ce serait l'idéal. :)

58
S. J.

Je viens de passer la matinée à régler ce problème. Le problème n'était pas qu'il me manquait un certificat. C'était que j'avais un extra.

J'ai commencé avec mon fichier ssl.conf contenant ma clé de serveur et trois fichiers fournis par mon autorité de certification SSL:

#   Server Certificate:
SSLCertificateFile /etc/pki/tls/certs/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key

#   Server Certificate Chain:
SSLCertificateChainFile /etc/pki/tls/certs/AddTrustExternalCARoot.pem

#   Certificate Authority (CA):
SSLCACertificateFile /etc/pki/tls/certs/InCommonServerCA.pem

Cela a bien fonctionné sur les ordinateurs de bureau, mais Chrome sur Android m'a donné err_cert_authority_invalid

Beaucoup de maux de tête, de recherches et d'une documentation médiocre plus tard, j'ai compris qu'il s'agissait de la chaîne de certificats de serveur:

SSLCertificateChainFile /etc/pki/tls/certs/AddTrustExternalCARoot.pem

Cela créait une chaîne de certificats seconde incomplète. J'ai commenté cette ligne, me laissant avec

#   Server Certificate:
SSLCertificateFile /etc/pki/tls/certs/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/pki/tls/private/myserver.key

#   Certificate Authority (CA):
SSLCACertificateFile /etc/pki/tls/certs/InCommonServerCA.pem

et maintenant cela fonctionne à nouveau sur Android. C'était sous Linux avec Apache 2.2.

28
Mike A

J'ai eu le même problème en hébergeant un site Web via Parse et en utilisant un certificat Comodo SSL revendu par NameCheap.

Vous recevrez deux fichiers de cert dans un dossier Zip: www_votredomaine_com.ca/dossier www_votredomaine_com.crt

Vous ne pouvez télécharger qu'un seul fichier dans Parse: Parse SSL Cert Input Box

Dans le terminal, combinez les deux fichiers en utilisant:

cat www_yourdomain_com.crt www_yourdomain_com.ca-bundle > www_yourdomain_com_combine.crt

Puis téléchargez dans Parse. Cela devrait résoudre le problème avec Android Chrome et les navigateurs Firefox. Vous pouvez vérifier que cela a fonctionné en le testant à l'adresse https://www.sslchecker.com/sslchecker

18
Jasper

Pour ceux qui ont ce problème sur les serveurs IIS.

Explication : parfois, les certificats portent à la place un URL d'un certificat intermédiaire du certificat actuel. Les navigateurs de bureau peuvent TÉLÉCHARGER le certificat intermédiaire manquant à l'aide de cette URL. Mais les anciens navigateurs mobiles sont incapables de le faire. Alors ils jettent cet avertissement.

Tu dois

1) assurez-vous que tous les certificats intermédiaires sont servis par le serveur

2) désactivez les chemins de certification inutiles dans IIS - Sous "Autorités de certification racines de confiance", vous devez "désactiver tout" pour le certificat qui déclenche le téléchargement.

PS mon collègue a écrit un billet de blog avec des étapes plus détaillées: https://www.jitbit.com/maxblog/21-errcertauthorityinvalid-on-Android-and-iis/

9
Alex

Le rapport de SSLabs dit:

  This server's certificate chain is incomplete. Grade capped to B.
  ....
  Chain Issues                  Incomplete

Les navigateurs de bureau ont souvent des certificats en chaîne mis en cache à partir de connexions précédentes ou les téléchargent à partir de l'URL spécifiée dans le certificat. Les navigateurs mobiles et autres applications ne le font généralement pas.

Corrigez votre chaîne en incluant les certificats manquants et tout devrait bien se passer.

7
Steffen Ullrich

J'espère que je ne suis pas trop en retard, cette solution ici a fonctionné pour moi, j'utilise COMODO SSL, les solutions ci-dessus semblent invalides avec le temps, mon site web lifetanstic.co.ke

Au lieu de contacter le support technique de Comodo et obtenir un fichier d'offre groupée d'AC, vous pouvez effectuer les opérations suivantes:

Lorsque vous recevez votre nouveau certificat SSL auprès de Comodo (par courrier électronique), un fichier Zip est joint. Vous devez décompresser le fichier Zip et ouvrir les fichiers suivants dans un éditeur de texte tel que le bloc-notes:

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt

Copiez ensuite le texte de chaque fichier ".crt" et collez-les au-dessus dans le champ "Autorité de certification (facultatif)".

Après cela, ajoutez simplement le certificat SSL comme d'habitude dans le champ "Certificat" et cliquez sur le bouton "Autofil par certificat", puis sur "Installer".

Inspiré par cet élément essentiel: https://Gist.github.com/ipedrazas/6d6c31144636d586dcc

5
user4237179

J'ai également eu un problème avec la chaîne et j'ai réussi à résoudre en utilisant ce guide https://Gist.github.com/bradmontgomery/6487319

4
Ricardo Torres

si, comme moi, vous utilisez AWS et CloudFront, voici comment résoudre le problème. c'est similaire à ce que d'autres ont partagé sauf que vous n'utilisez pas le fichier crt de votre domaine, mais ce que comodo vous a envoyé par courrier électronique.

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > ssl-bundle.crt

cela a fonctionné pour moi et mon site n'affiche plus l'avertissement ssl sur chrome sous Android.

4
w1n78

Une façon décente de vérifier s’il ya un problème dans votre chaîne de certificats est d’utiliser ce site Web:

https://www.digicert.com/help/

Branchez votre URL de test et il vous dira ce qui peut ne pas être correct. Nous avons eu un problème avec le même symptôme que vous, et notre problème a été diagnostiqué comme étant dû à des certificats intermédiaires.

Le certificat SSL n'est pas approuvé

Le certificat n'est pas signé par une autorité de confiance (vérification par rapport au magasin racine de Mozilla). Si vous avez acheté le certificat auprès d'une autorité de confiance, il vous suffira probablement d'installer un ou plusieurs certificats intermédiaires. Contactez votre fournisseur de certificats pour obtenir de l'aide pour votre plate-forme de serveur.

3
Knossos

J'ai résolu mon problème avec ces commandes:

cat __mydomain_com.crt __mydomain_com.ca-bundle > __mydomain_com_combine.crt

et après:

cat __mydomain_com_combine.crt COMODORSADomainValidationSecureServerCA.crt 
COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > mydomain.pem

Et dans mon domaine nginx .conf je mets sur le serveur 443:

ssl_certificate          ssl/mydomain.pem;
ssl_certificate_key      ssl/mydomain.private.key;

Je n'oublie pas de redémarrer votre "Nginx"

service nginx restart
3

J'imagine que vous devriez installer le certificat CA sous une forme si l'autorité canter:

ssl_trusted_certificate ssl/SSL_CA_Bundle.pem;

0
Michael de Oz

J'ai eu le même problème mais la réponse faite par Mike A m'a aidé à le comprendre: j'avais mon certificat, un certificat intermédiaire (Gandi), un autre intermédiaire (UserTrustRSA) et enfin le certificat RootCA (AddTrust).

Donc d’abord, j’ai créé un fichier chaîne avec Gandi + UserTrustRSA + AddTrust et je l’ai spécifié avec SSLCertificateChainFile. Mais ça n'a pas marché.

J'ai donc essayé de répondre MikeA en mettant tout simplement le certificat AddTruct dans un fichier et en le spécifiant avec SSLCACertificateFile et en supprimant SSLCertificateChainFile. Mais cela n'a pas fonctionné.

Donc, finalement, j’ai créé un fichier chaîne avec seulement Gandi + UserTrustRSA spécifié par SSLCertificateChainFile et l’autre fichier avec seulement le RootCA spécifié par SSLCACertificateFile et cela a fonctionné.

#   Server Certificate:
SSLCertificateFile /etc/ssl/Apache/myserver.cer

#   Server Private Key:
SSLCertificateKeyFile /etc/ssl/Apache/myserver.key

#   Server Certificate Chain:
SSLCertificateChainFile /etc/ssl/Apache/Gandi+UserTrustRSA.pem

#   Certificate Authority (CA):
SSLCACertificateFile /etc/ssl/Apache/AddTrust.pem

Cela semble logique lorsque vous lisez, mais espérons que cela vous aidera.

0
zeraDev