web-dev-qa-db-fra.com

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

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

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

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

28
Jon

La chaîne était en fichier crt, que le SSL original fonctionnait.

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

Copiez cette information et ajoutez-la au dossier installé sur le serveur.

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

Il me reste des contenus d'ancrage dans la chaîne sur ssllabs.com mais ce n'est pas un problème, juste une option pour laisser entrer ou sortir - selon - https://security.stackexchange.com/ questions/24561/ssltest-chain-issues-contient-ancre/24566 # 24566

9
Jon

Suite à la réponse de zakjan, j'ai eu un problème lorsque j'ai essayé d'utiliser jquery pour faire une demande 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é dans le texte de mon fichier .crt signé que je venais de recevoir de Comodo (positiveSSL), ce qui m'a permis de concaténer tout ce dont j'avais besoin. Je l'ai enregistré sous mon domaine + "chain.crt" (voir ci-dessous)

Ensuite, dans mes configurations Apache, j'ai entré quelque chose comme ceci 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 visualisation Web de mon application Android n'a pas posé de problème lors de l'utilisation de ajax pour POST sur mon serveur. Je l'ai essayé sur 2 appareils du monde réel, l'un fonctionnant sous 2.3.4, l'autre sous 4. quelque chose. Et sur l'émulateur en cours d'exécution 2.3. Tout a fonctionné.

J'espère que ça aide.

16
Richard

Vous pouvez résoudre manuellement le problème de chaîne de certificats incomplet en concaténant tous les certificats du certificat vers le certificat racine de confiance (exclusif, dans cet ordre), afin d'éviter de tels problèmes. Notez que le certificat racine approuvé ne doit pas être là, car il est déjà inclus dans le magasin de certificats racine du système.

Vous devriez pouvoir récupérer des certificats intermédiaires auprès de l'émetteur et les concatecter par vous-même. Au fait, 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

7
zakjan