2017-09-07 2 views
0

Récemment, j'ai essayé d'accéder à un site Web HTTPS via Java. Je rencontrais une erreur sur le SSL disant quePourquoi est-il nécessaire d'installer l'intermédiaire CA

incapable de trouver chemin de certification valide pour cible

demandé J'ai essayé de vérifier mon magasin de confiance et le certificat racine et l'autorité de certification intermédiaire qui est signé par la racine CA est également installé. La seule chose qui n'existe pas est une autre autorité de certification intermédiaire qui est celle utilisée pour signer le certificat du site Web.

J'ai essayé d'installer le CA intermédiaire et ai fait fonctionner le truc. Je me demande, pourquoi est-il nécessaire d'installer l'autorité de certification intermédiaire? N'y a-t-il pas quelque part l'acquisition de quelque part sans l'installer dans mon magasin de confiance?

Répondre

3

Pourquoi est-il nécessaire d'installer l'AC intermédiaire?

Parce que le serveur Web HTTPS est mal configuré.

Il est supposé pour envoyer la chaîne de certificats, jusqu'à mais excluant le certificat racine. Celui qui a configuré le serveur Web n'a pas fait cela, donc si vous n'avez pas la chaîne installée localement, il y a un chaînon manquant dans la chaîne.

La solution correcte est que l'administrateur du serveur Web configure correctement le serveur. La solution de contournement est ce que vous avez fait, à savoir installer les certificats intermédiaires manquants localement, afin que Java puisse vérifier la chaîne complète.

1

Le certificat intermédiaire est un (ou plusieurs) entre celui de votre magasin de confiance et celui publié sur le serveur. L'AC dont vous avez obtenu votre certificat SSL devrait vous l'avoir fourni (généralement un fichier «cabundle»). Cela doit être installé sur le serveur.

Pour Apache, vous devez spécifier le SSLCertificateChainFile dans les anciennes versions, ou dans la version 2.4 et ultérieure, ajouter le contenu du fichier cabundle au fichier de certificat.

Pour Nginx, vous devez ajouter le contenu du fichier cabundle au fichier de certificat.

Pour SSL pour valider il a besoin de toute la chaîne de confiance pour être valable, par exemple

Root CA (in your browser) -> Intermediate Certificates (if any) -> Your certificate

Si les certs intermédiaires manquent le client ne peut pas vérifier le certificat est valide.

0

Le certificat intermédiaire est le signataire immédiat du certificat de serveur. Ainsi, pour créer une chaîne de confiance, le client vérifie le certificat jusqu'à son certificat racine auto-signé. Si le serveur n'envoie pas les certificats intermédiaires avec le certificat de domaine principal, les navigateurs commenceront à lancer une erreur indiquant «Autorité de certification non valide» parce qu'il attendait le certificat intermédiaire qui a signé le certificat de domaine mais qui n'a reçu que le domaine certificat.