Voici la situation. J'apporte des modifications à une application mais je n'ai pas d'environnement de test. L’équipe de test doit utiliser un serveur d’assurance qualité, mais je préfère tester l’application sur mon ordinateur local (le déploiement de modifications sur ce serveur peut interrompre les testeurs). J'ai configuré l'environnement sur mon ordinateur local, mais il y a un problème.
L'application lit les données d'une application tierce. Il faut un certificat SSL pour se connecter au tiers.
Ma question est la suivante: pourquoi ne puis-je pas utiliser le certificat SSL du serveur d'assurance qualité sur mon ordinateur local?
J'ai effectué une recherche superficielle sur Stack Overflow, et il me semble qu'une fois le certificat délivré par l'autorité de certification, tout ordinateur pourrait l'utiliser. Je suppose que j'ai mal compris une partie du processus SSL.
Le certificat SSL est lié au nom d'hôte réel. Si vous avez un certificat SSL pour "qa.example.com", il ne fonctionnera pas sur votre machine nommée "dev.example.com".
Peut-être que c'est le problème que vous rencontrez.
Je suppose que ce que vous décrivez consiste à effectuer l'authentification du client SSL auprès d'un tiers distant. Que votre produit ait initié la connexion aux tiers en tant que client et que le tiers décide si votre certificat est suffisant pour la connexion.
Un certificat est essentiellement constitué de trois choses:
Donc… c'est un peu plus qu'un simple mot de passe, mais ce sont toutes des données, finalement.
La réponse à la question de savoir si vous pouvez installer un certificat de client SSL dans plusieurs emplacements est oui et non. Cela dépend principalement des exigences de sécurité du système tiers et de la manière dont vous avez stocké cette clé privée.
Il est possible de stocker une paire de clés privée/publique et un certificat dans un fichier - une norme pour cela est le PKCS # 12 . Les PKCS12 sont généralement sécurisés par un mot de passe. De nombreux outils logiciels vous permettent de créer la paire de clés, de la stocker dans un PKCS12 et d’appliquer les divers protocoles de certificat nécessaires pour demander et terminer l’émission du certificat par un tiers (je soupçonne que votre tiers exige que votre certificat soit signé par un tiers. d’une liste d’émetteurs de confiance). Chaque serveur d’application que j’ai vu vous a ensuite permis de configurer le fichier de certificat en tant que certificat côté client.
Si c'est ainsi que le certificat SSL QA est stocké, il ne devrait pas y avoir de problème pour l'installer sur votre ordinateur.
Voici le piège - la politique de sécurité exige parfois que les certificats soient stockés sur un jeton matériel. Il s’agit généralement d’une mesure de sécurité visant à garantir qu’une seule entité peut utiliser le certificat. La copie de fichiers de certificat de logiciel fonctionne bien dans un environnement de test, mais il s’agit d’une pratique de sécurité plutôt médiocre pour une installation de produit opérationnelle. Si le serveur d'assurance qualité utilise un jeton matériel, ce dernier est susceptible de protéger la copie de la paire de clés privées vers un autre emplacement. Sans accès à la paire de clés privées, vous ne pourrez pas exécuter la demande SSL au tiers. La démonstration de l'accès à la clé privée fait partie du protocole.
Dans ce cas, vous devrez demander votre propre certificat et votre paire de clés pour accéder au tiers - à moins que votre société ne propose un mécanisme de partage des jetons matériels. Ce n’est pas tout à fait fou - certaines batteries de serveurs le font - tous les serveurs ont la configuration pour exploiter un module de sécurité matériel (HSM) réseau commun et pour utiliser la paire de clés. Cela est souvent vrai pour les certificats de site SSL, de sorte que tous les serveurs de la collection peuvent sembler être le même serveur. Le truc, c'est que ce type de matériel est plutôt haut de gamme. Si vous effectuez des tests rapides et impromptus, je penserais qu'il serait peu probable d'avoir accès à ce type de système.
Je poserais des questions sur les certificats logiciels et sur la possibilité de vous en procurer une copie. Il y a peut-être des raisons de politique qui l'interdisent ... mais il n'est pas difficile de les installer, et si vous faites juste des tests, vous ne risquez rien.
Je sais que c'est un article plus ancien et que quelque chose me manque peut-être, mais il semble que tout le monde a manqué la vraie réponse ici. Si vous voulez avoir un seul certificat qui fonctionne sur plusieurs serveurs utilisant plusieurs noms d’hôte/domaines, il vous suffit d’acheter un certificat SAN. Nous le faisons tout le temps au travail ...
C'est certainement possible, sinon, comment les serveurs fonctionneraient-ils dans une batterie de serveurs Web? Le même certificat est installé sur tous les serveurs d'une batterie de serveurs Web.
Je n'ai pas d'expérience sur Apache, mais pour IIS, le processus est décrit ici http://support.Microsoft.com/kb/313299
@ Kyle Jones - Ma question est la suivante: pourquoi ne puis-je pas utiliser le certificat SSL de le serveur d'assurance qualité sur mon ordinateur local?
@autonomatt - Sous-question: VeriSign et d’autres sociétés vous demandent comment de nombreux serveurs sur lesquels vous installez le certificat SSL ... obtenant l’imprévisible le client appelle en disant que son navigateur signale un problème avec / certificat ...
Légalement? Vous pouvez installer le certificat SSL sur plusieurs ordinateurs, mais vous ne pourrez peut-être pas le faire légalement . La société signataire de la CA, comme Network Solutions, a une limite légale à votre achat. Lorsque vous achetez un certificat SSL, vous l’achetez pour l’installer uniquement sur un ordinateur. Vous devez lire les termes de l’autorité de certification signataire auprès de laquelle vous achetez le certificat.
Techniquement? Sur le plan technique, à l'exception de certains serveurs SSL à accélération matérielle, vous pouvez copier la clé et le tube cathodique sur n'importe quel serveur Web afin de servir une connexion SSL valide. Notez que certains certificats SSL sont expédiés/fournis par l'autorité de certification avec une chaîne de certificats qui doit également être installée côté serveurs. Sans la chaîne de certificats installée, le navigateur Web du client ne peut pas valider correctement le certificat SSL. Vous devez vérifier si une chaîne de CA est fournie avec le certificat SSL fourni par l'autorité de certification signataire.
Résolution requise. Et le certificat SSL est lié à un nom d'hôte. Lorsqu'un navigateur Web client adresse une requête à un serveur, il se connecte à une adresse IP résolue à partir d'un nom de domaine, puis commence le processus d'établissement de liaison SSL/TLS. Le serveur Web répondant à cette adresse IP doit présenter le certificat SSL avec un nom commun que le navigateur Web du client demande via une adresse IP. Cela signifie qu'un seul certificat SSL par adresse IP peut être configuré. Le client n'envoie que les requêtes HTTP 1.1 cryptées. Le serveur n'a donc aucune idée de la nature de la requête de domaine du client tant qu'après la négociation SSL/TLS.
Résolution IP hors production. Pour installer ailleurs, le navigateur Web doit résoudre correctement le nom d'hôte en adresse IP. Ainsi, si vous vous trouvez dans un environnement de non-production, le client doit résoudre l'adresse IP différemment de l'environnement de production. Cela peut être effectué avec d'autres serveurs DNS ou avec le fichier d'hôtes local de toutes les machines nécessitant une résolution DNS alternative.
Processus d'installation technique. Pour installer le certificat SSL sur une autre machine, copiez les clés KEY, SSL CRT et CA Chain dans les fichiers appropriés configurés pour le serveur Web. Si Apache, tout peut aller dans le fichier PEM du certificat SSL.
Assurez-vous ensuite que le serveur Web sert ce fichier PEM à l'adresse IP qui résout le nom commun dans le certificat SSL.
Wildcard SSL Certs. Certaines autorités de certification fournissent également des certificats SSL Willdcard, tels que * .domain.com. Notez que le navigateur Web doit reconnaître ce type de certificat et ne protège qu'un seul niveau de sous-domaine. Ainsi, www.domain.com peut être protégé, mais www.sub1.domain.com obligera le navigateur Web du client à donner à l'utilisateur client une erreur de validation.
Quelques raisons pour lesquelles les navigateurs Web clients reçoivent des erreurs de validation SSL Cert:
Généralement, lors de la négociation SSL, le nom d'hôte faisant partie du certificat correspond à Le nom d'hôte de l'autre côté d'une connexion SSL. C'est pourquoi un certificat est lié à un nom d'hôte.
Il y a plusieurs façons de sortir de cela.
Voir http://support.godaddy.com/help/article/567/what-is-a-wwcardcard-ssl-certificate Et http://docs.Oracle.com/javase/ 7/docs/api/javax/net/ssl/HostnameVerifier.html
Les certificats SSL sont liés à un nom d'hôte. Donc, pour pouvoir utiliser votre machine dev, vous devez résoudre le nom d’hôte sur votre machine dev (c’est-à-dire utiliser le fichier hosts)
Le certificat contient les informations suivantes: 1) Des détails tels que le nom, le domaine, l'adresse, la date d'expiration de la clé, etc., concernant l'entreprise/le propriétaire du certificat . 2) Il contient la clé publique. 3) Quelques données cryptées. C'est le point crucial.
Ces données cryptées sont toutes les informations utilisateur ainsi que la clé publique présente dans le certificat qui a été signé par la clé privée de l'autorité de certification qui a délivré le certificat.
Lorsque le navigateur reçoit le certificat, il tente de dé-signer les données chiffrées à l'aide de la clé publique de l'autorité de certification déjà intégrée au navigateur. Ainsi, si toutes les informations présentes dans le certificat correspondent après la signature, le propriétaire du domaine mentionné dans le certificat dispose alors de la clé privée correspondant à la clé publique mentionnée dans le certificat.
Donc, le point crucial est que, si quelqu'un publie (comme les sites Web) que je suis le propriétaire du certificat, cela signifie que personne/société est propriétaire de la paire de clés privée correspondante.
C’est pourquoi "L’application lit les données d’une application tierce. Elle a besoin d’un certificat SSL pour se connecter à cette tierce partie".
et ce à quoi les certificats sont destinés. Fondamentalement, votre application souhaite établir une connexion SSL avec l'application tierce et si vous avez le certificat, vous êtes prêt. Donc, au début, je suppose que vous avez mis le certificat dans un mauvais répertoire afin que votre application ne puisse pas le lire et ne puisse pas établir de connexion ssl avec le tiers. Ou il y a un problème de fichier de configuration.
Je sais que cette réponse est d'aucune utilité, mais j'ai pensé mieux écrire ce que je ressens.
Ça dépend de ce que tu veux dire par là
Un certificat générique peut être utilisé pour plusieurs hôtes avec différents enregistrements A.
Par exemple, vous avez un certificat générique pour le domaine *.stackoverflow.com.
Vous pouvez avoir le protocole TLS approuvé par CA tant que les nouveaux serveurs que vous utilisez utilisent un sous-domaine du domaine stackoverflow.com
c'est-à-dire .mail-server.stackoverflow.com
Je comprends que ma réponse à cette question est trop tardive dans le fil de discussion ... mais j’ai rencontré le même problème aujourd’hui lors de l’installation du même certificat sur 2 serveurs dans une configuration Load Balancer, OS = Windows 2008/IIS 7.5 et capable de trouver la solution.
J'ai pu l'installer sur le premier serveur en cliquant sur "Demande de certificat complète" et en naviguant jusqu'à l'emplacement où se trouve le certificat "abc.cer" (supposons que vous avez déjà le certificat avec vous). Ensuite, j'ai copié le même 'abc.cer' sur le deuxième serveur et essayé 'Complete Certificate Request' et cela ne fonctionnerait pas. Le certificat apparaîtrait comme installé mais disparaîtrait dès que j'ai actualisé le gestionnaire IIS. Ensuite, j'ai essayé l'option "exporter" le certificat du premier serveur (il génère un fichier d'extension .pfx), puis importé le même sur le second serveur. Cette méthode a fonctionné.
Je pense que vous devez élaborer un peu plus sur votre environnement, mais peut-être n'avez-vous pas copié la partie clé privée du certificat sur votre ordinateur local. Les clés privées et publiques sont nécessaires pour utiliser le certificat. Je suppose depuis que vous écrivez "lu d'un tiers" que vous utilisez un certificat client.
Dans ces situations, le tiers fera généralement l'une des deux choses suivantes. Vous fournir l'accès à un sandbox d'assurance qualité ne nécessitant pas de certificat. ou vous autoriser à créer un certificat temporaire qu’ils accepteront qui n’est pas validé par une autorité de certification. Il serait étrange pour un fournisseur de services Web tiers de ne pas prévoir la nécessité d'avoir une assurance qualité différente. environnements.
Bien techniquement, un certificat (exporté à partir de ces outils PKI) ne contiendra pas de clé privée. Ainsi, même dans un environnement où la charge est équilibrée, la copie simple du certificat ne vous aidera pas ??
De même, lorsque nous générons des certificats à l'aide d'outils PKI, vous pouvez fournir une chaîne arbitraire pour le nom distinctif (comme "CN = xyz, OU = ttr, O = x"). Je me demande quel serait le comportement si différentes machines utilisent le même DN pour créer les certificats?