Certificat SSL transféré vers Rackspace Cloud Server – Erreur occasionnelle

OK, j’ai récemment transféré mon certificate SSL Comodo de mon ancien compte Bluehost vers mon nouveau serveur cloud rackspace. (Pile LAMP)

Fondamentalement, je viens de copier le certificate et la clé du serveur collé et de vérifier qu’il était correctement installé. Maintenant que je suis confronté à certains problèmes, j’entends parfois des gens dire qu’ils obtiennent une «erreur de connexion non approuvée» alors que d’autres ne reçoivent pas cette erreur du tout.

Récemment, quelqu’un m’a envoyé une copie d’écran de son erreur et il m’a dit: Ce certificate n’est pas fiable parce qu’aucune chaîne d’émetteurs n’a été fournie.

Le navigateur sur lequel ils ont remarqué cela était safari. J’ai donc effacé toutes mes données historiques dans Safari et ouvert le site, mais je ne vois pas cette erreur.

Est-ce que quelqu’un a une idée de comment réparer quelque chose comme ça? Merci!

Quand j’entre openssl s_client … j’obtiens:

Certificate chain 0 s:/OU=Domain Control Validated/OU=Hosted by BlueHost.Com, INC/OU=PositiveSSL/CN=www.sitename.com i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2 1 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2 i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root 

Vous n’avez probablement pas les certificates «chaîne» ou intermédiaire (que certaines personnes peuvent avoir dans leur navigateur, et d’autres pas).

Le moyen le plus simple de résoudre ce problème est de consulter les détails de l’émetteur sur votre certificate. et trouver ce certificate. Ensuite, regardez les détails de l’émetteur de ce cert – jusqu’à ce que vous atteigniez la racine – qui est un certificate auto-signé (sujet identique à l’émetteur).

Une fois que vous les avez tous concaténés dans un fichier et pointez SSLCertificateChainFile à cela.

Votre httpd.conf ressemble alors à

  SSLEngine on SSLCertificateKeyFile .../your-key.key SSLCertificateFile .../your-cert.pem SSLCertificateChainFile .../ca-bundle.pem 

Certaines autorités de certificateion rendent ce fichier disponible sous la forme d’un fichier “ca-bundle” (https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1203) lorsqu’elles émettent un cert. La plupart ne le font pas.

Dans ce cas, vous devrez le créer. Faire

 openssl x509 -in  -noout -issuer 

vous obtiendrez la chaîne exacte de l’émetteur. Googler pour cela vous donne généralement le certificate intermédiaire dont vous avez besoin (généralement sur le site de support de votre autorité de certificateion). Une fois que vous avez cela – répétez ci-dessus et continuez jusqu’à ce que vous soyez au dernier – où l’émetteur est identique au sujet.

Une fois cela fait – redémarrez le serveur Web et cela devrait être le cas.

Si vous voulez vérifier que vous avez la chaîne entière – alors utilisez la commande

 openssl s_client -connect :443 

et vérifiez que la sortie commence par:

 0 s:/C=GB/OU=Domain Control Validated/CN= i:/C=BE/O=Comodo/CN=Comodo foobar .... 3 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA 

et au moins une entrée (3 dans l’exemple ci-dessus) où vous avez une racine finale; le S est identique en haut le i. Si vous ne voyez qu’une seule entrée

 0 s:/C=GB/OU=Domain Control Validated/CN= i:/C=BE/O=Comodo/CN=Comodo foobar 

et rien de plus – puis vérifiez à nouveau votre chaîne – et assurez-vous qu’elle contient un cert avec un sujet identique à celui de votre émetteur (dans l’exemple ci-dessus ‘/ C = BE / O = Comodo / CN = Comodo foobar’).

Vous pouvez vérifier cela en analysant chaque goutte dans votre paquet avec

  openssl x509 -noout -in file.pem -subject -issuer 

où fichier.pem est un morceau de votre fichier SSLCertificateChainFile.

Avertissement: Ci-dessus, une légère simplification – certaines chaînes peuvent avoir plusieurs racines / signatures croisées. Dans ce cas, cela devient un peu plus complexe – mais suit l’exemple ci-dessus.