Comment réparer une chaîne SSL incomplète


29

J'ai un certificat Go Daddy SSL installé et fonctionne très bien partout sauf Android.

https://www.ssllabs.com/ssltest/analyze.html dit que la chaîne est incomplète, et j'ai lu lors du débordement de pile qu'une chaîne SSL dans le mauvais ordre échouera sur Android.

Mais comment le mettre en ordre? Sur mon serveur? Le certificat SSL lui-même doit être retapé? Déplacer des choses sur FTP?

Réponses:


19

Suite à la réponse de Zakjan, j'ai eu un problème lorsque j'ai essayé d'utiliser jquery pour faire une requête AJAX sur mon serveur nouvellement sécurisé, dans une vue Web Android. Cela a fonctionné dans le navigateur, mais pas dans mon application.

J'ai utilisé ce site: https://certificatechain.io/

J'ai collé le texte de mon fichier .crt signé que je suis revenu de Comodo (positiveSSL), et cela m'a redonné une concatination de tout ce dont j'avais besoin. Je l'ai enregistré comme mon domaine + "chain.crt" (voir ci-dessous)

Ensuite, dans mes configurations Apache, j'ai entré quelque chose comme ça pour cet hôte virtuel particulier:

SSLEngine On
SSLCertificateFile /etc/ssl/localcerts/example_com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/example.com.key
SSLCACertificateFile /etc/ssl/localcerts/example.com.chain.crt

Après cela, la vue Web de mon application Android n'a pas eu de problème en utilisant ajax to POST sur mon serveur. Je l'ai essayé sur 2 appareils du monde réel, un exécutant 2.3.4, un exécutant 4. quelque chose. Et sur l'émulateur exécutant 2.3. Tout fonctionnait.

J'espère que ça aide.


1
La clé pour moi était d'ajouter la SSLCACertificateFiledirective et de la pointer vers le fichier CA que mon autorité m'a donné. Cela ne fonctionnerait pas si je concaténais simplement les autres certificats à mon fichier de certificat.
Alex W

Dans les anciennes versions, SSLCertificateChainFile pouvait être utilisé à la place de SSLCACertificateFile (au cas où vous rechercheriez cette clé dans vos configurations et ne la trouveriez pas).
dr0i

Incroyablement, mais la réponse @Richard utilise le site certificatechain.io et le site dit "... inspiré par cert-chain-resolver par Jan Žák", qui a répondu à cette question ici: superuser.com/a/866523/92500 , merci @zakjan!
Andrés Morales

Le SSLCACertificateFileétait la ligne que j'ai raté. Au départ, je pensais que mon autorité de certification était trop récente car SSL fonctionnait à la demande de certains navigateurs / systèmes d'exploitation, mais pas d'autres. L'utilisation de decoder.link/sslchecker a permis de clarifier que ma configuration était incorrecte, et cette réponse avait le correctif. Merci!!
josephdpurcell

9

La chaîne était dans le fichier crt, que le SSL d'origine fonctionnait.

Pour GoDaddy, il existe un deuxième certificat - gd_bundle.crt

Copiez ces informations et ajoutez-les au crt installé sur le serveur.

Ainsi, le crt d'origine sur le serveur avait 1 certificat, et après il en aura 3 sur le même fichier. Ceci est la chaîne.

J'ai toujours des problèmes d'ancre dans la chaîne sur ssllabs.com mais ce n'est pas un problème, juste une option pour laisser entrer ou sortir - selon - /security/24561/ssltest-chain-issues -contient-ancre / 24566 # 24566


2
Pour se débarrasser des problèmes de chaîne, supprimez le dernier certificat de gd_bundle.crt
sanmai

7

Vous pouvez résoudre manuellement le problème de la chaîne de certificats incomplète en concaténant tous les certificats du certificat au certificat racine de confiance (exclusif, dans cet ordre), pour éviter de tels problèmes. Remarque, le certificat racine approuvé ne doit pas être présent, car il est déjà inclus dans le magasin de certificats racine du système.

Vous devriez pouvoir récupérer les certificats intermédiaires de l'émetteur et les concaténer vous-même. Btw, j'ai écrit un script pour automatiser la procédure, il faut un certificat pour produire une sortie de certificats correctement chaînés. https://github.com/zakjan/cert-chain-resolver


Cela ressemble à une solution qui ne fait que "tromper" la machine locale en pensant que le certificat est correctement configuré.
Alex W

Nan. Le paquet de certificats de sortie est censé être téléchargé sur un serveur, qui envoie le contenu du site Web. Chaque client recevra le certificat avec ses intermédiaires.
zakjan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.