La vraie solution est de vous assurer que votre serveur présente tous les certificats de la chaîne et pas seulement le certificat d'entité finale (serveur).
Dirigez votre administrateur de serveur vers la section 7.4.2 de la RFC 5246 qui indique clairement que ce message transmet la chaîne de certificats du serveur au client.
Si votre administrateur refuse / ne peut pas le faire pour une raison quelconque, votre option alternative est d'essayer de vous mettre curl
au travail avec la poignée de main malformée.
Selon un message sur la liste de diffusion Curl:
Quelqu'un peut-il confirmer si cURL prend en charge (ou non) un certificat intermédiaire?
Oui. Tous les certificats CA ont une chaîne de certificats remontant à la racine. Le bundle ca que vous utilisez avec curl doit être composé des certificats pour toute la chaîne.
/ daniel.haxx.se
Vous devriez pouvoir ajouter l'autorité de certification racine et tous les certificats intermédiaires à un ensemble et pointer curl
vers celui-ci à l'aide de l' --cacert <file>
option.
Au fur et à mesure que vos navigateurs fonctionnent, vous pouvez accéder aux bons certificats CA à partir de là. Sur l'onglet certificats (différent pour chaque navigateur, mais je suis sûr que vous comprendrez celui-là), affichez la chaîne de certificats. Double-cliquez sur l'autorité de certification racine première racine de GlobalSign CA - G1 et sur la Détails onglet, cliquez sur Copier dans un fichier ... . Enregistrez-le sous root.cer
. Faites de même avec l' AlphaSSL CA-SHA256-G2 et enregistrez-le sous issuing.cer
. Joignez les deux ensemble dans un seul fichier (par exemple chain.cer
) et utilisez-le comme argument pour -cacert
.
Comme l'a gentiment souligné @AB, le certificat manquant peut également être trouvé ici .
Vos navigateurs fonctionnent car ils mettent en cache les certificats CA. Si vous avez navigué vers un site Web correctement configuré à un moment donné dans le passé, dont le certificat a été émis par la même autorité de certification que le certificat de votre serveur, il sera mis en cache par le navigateur. Lorsque vous visitez par la suite votre site incorrectement configuré, votre navigateur utilise les certificats CA dans son cache pour créer la chaîne. Pour vous, il semble que tout va bien, bien que dans les coulisses, le serveur soit mal configuré.
Notez que sous Windows, IE / Edge et Chrome partagent le même cache, tandis que Firefox utilise le sien.
En plus de ce qui précède, IE / Edge et Chrome (car ils partagent la même pile de chiffrement) utiliseront une extension dans les certificats appelée AuthorityInformationAccess . Cela a une option caIssuer qui fournit une URL à partir de laquelle le certificat CA du certificat d'entité finale peut être téléchargé. Par conséquent, même si l'un de ces navigateurs n'a pas mis en cache les certificats manquants de la navigation précédente, il peut le récupérer si nécessaire. Notez que Firefox ne fait pas cela, c'est pourquoi parfois Firefox peut afficher des erreurs de certificat lorsque IE / Edge et Chrome semblent fonctionner.