Mon client utilise un certificat auto-signé pour qu'une application fonctionne. Pour pouvoir travailler, je dois installer le certificat racine qu'ils ont utilisé pour signer le certificat.
Est-il possible de configurer un certificat racine pour qu'il ne valide que vers un seul domaine?
certificate
restrictions
MichaelD
la source
la source
Réponses:
En règle générale:
Non , la confiance accordée à chaque certificat signé par cette autorité de certification implique implicitement la confiance dans le certificat de l'autorité de certification du client.
Je ne connais pas d'applications / bibliothèques qui ont une option simple qui vous permet en tant qu'utilisateur final de choisir que vous ferez confiance à vos clients ou à tout autre certificat CA uniquement pour certains (sous-) domaines, c'est-à-dire uniquement pour *. example.com et * .example.org et rien d'autre.
Mozilla a une préoccupation similaire à propos des autorités de certification actuellement parrainées par le gouvernement comme point d'attention ouvert et, par exemple, Chrome a des contrôles supplémentaires intégrés pour accéder aux sites Google, c'est ainsi que le certificat voyou * .google.com et le compromis de l'autorité de certification Diginotar sont devenus publics. .
Mais même si vous ne faites pas confiance à l'autorité de certification, vous pouvez toujours importer / approuver un certificat de serveur spécifique signé par cette autorité de certification, ce qui empêchera les avertissements SSL pour les noms d'hôte de ce certificat. Cela devrait permettre à votre application de fonctionner sans erreurs ni plaintes.
Exceptions:
Une option très sous-utilisée de la norme PKI X.509v3 est l' extension Name Constraints , qui permet à un certificat CA de contenir des listes blanches et noires de modèles de noms de domaine pour lesquels il est autorisé à émettre des certificats.
Vous pourriez être chanceux et votre client s'est retenu lorsqu'il a configuré son infrastructure PKI et a inclus cette contrainte de nom dans son certificat CA. Vous pouvez ensuite importer directement leur certificat CA et savoir qu'il ne peut valider qu'une plage limitée de noms de domaine.
la source
example.com
ou*.ad.example.com
sont valides. Votre autorité de certification interne peut également émettre des certificats pour*.example.bank
permettre une belle attaque d'homme au milieu et espionner vos informations bancaires en ligne.@CryptoGuy avait une assez bonne réponse ici, mais je voulais développer cela.
Paraphraser:
Et voici comment cela fonctionne (en utilisant la ligne de commande OpenSSL CA)
Créer une autorité de certification simple
Vous pouvez ignorer la création d'une autorité de certification intermédiaire
Créez une demande CA intermédiaire, avec des contraintes de nom.
Avec ceci dans le
ossl_domain_com.cfg
fichier:Ensuite, signez cette autorité de certification de domaine intermédiaire avec votre autorité de certification.
Si vous avez ignoré la création de l'intermédiaire, utilisez votre autorité de certification racine pour signer
Maintenant, signez à nouveau l'autorité de certification du domaine d'origine sous votre autorité, à l'aide de leur certificat. Vous pouvez ajouter les extensions CA ici.
Vous devrez peut-être utiliser l'
-x509-to-req
argument pour créer une demande, que vous signeriez exactement de la même manière que l'intermédiaire ci-dessus.Maintenant, ajoutez votre autorité de certification racine, votre autorité de certification intermédiaire et le domaine-cross-ca à la base de données de confiance de votre navigateur.
la source
basicConstraints
ligne dans le fichier de configuration semble entraîner l'extension de contraintes à deux reprises dans le certificat, ce qui oblige Firefox à rejeter le certificat avec un message d'erreur cryptique. Je pense qu'il peut être retiré en toute sécurité.error with certificate to be certified - should be self signed
. Qu'est-ce que cela signifie et comment résoudre ce problème? pastebin.ubuntu.com/p/QHhpQh2N6J