Référence de certificat de point de terminaison client, comment savoir s'il existe une virgule dans les parties du nom distinctif?

StackOverflow https://stackoverflow.com/questions/1650656

Question

Nous essayons de référencer un certificat pour une configuration de point de terminaison client dans notre fichier de configuration WCF.

La configuration ressemble à ceci:

<client>
    <endpoint address="https://domain.server.com/path/service.asmx"
        binding="basicHttpBinding" bindingConfiguration="TestServiceSoap"
        contract="..." name="...">
        <identity>
            <certificateReference storeName="TrustedPublisher"
                x509FindType="FindBySubjectDistinguishedName"
                findValue="...">....

Pour un certificat de test, le " Objet " propriété ressemble à ceci:

CN = demo.domain.com
OU = Company
O = Company
L = City
S = County
C = CountryCode

Ceci fonctionne, si nous fournissons ce qui suit pour l'attribut findValue ci-dessus:

CN=demo.domain.com, OU=Company, O=Company, L=City, S=County, C=CountryCode

Cependant, pour un certificat que nous avons d'un tiers, celui-ci a ajouté son adresse en tant que partie intégrante de celle-ci. La liste d'identifiants ci-dessus se présente ainsi:

CN = demo.domain.com
OU = Company
STREET = Mainstreet 1, Town Center
L = City
S = County
C = CountryCode

Évidemment, la virgule dans la partie STREET ne fonctionnera pas, car notre chaîne contient maintenant " Town Center " en tant que pièce séparée sans nom.

Comment spécifions-nous que nous souhaitons trouver le certificat à l'aide de cette liste d'identifiants?

CN=demo.domain.com, OU=Company, O=Company, STREET=Mainstreet 1, Town Center, L=City, S=County, C=CountryCode
                                                              ^-- Argh!
Était-ce utile?

La solution

Ok, avec plus d’expérimentation, nous avons réussi à trouver la réponse nous-mêmes.

Premièrement, pour encapsuler des valeurs contenant des caractères spéciaux, nous devons les placer entre guillemets.

Toutefois, cela ne fonctionnera pas bien avec findName = "..." , qui utilise également des guillemets doubles. Nous l'avons donc remplacé par des guillemets simples.

Le résultat final était le suivant:

findName='..., STREET="Mainstreet 1, Town Center", ...'
         ^            ^                         ^     ^
         |            +---- this is needed -----+     |
         |                                            |
         +- and this is needed to use double quotes --+

Autres conseils

Ce n’est pas une réponse directe à votre question, mais vous n’avez pas vraiment besoin d’indiquer tous ces détails si vous ne le souhaitez pas. Le CN devrait suffire à moins que vous n'ayez VRAIMENT plusieurs personnes avec le même CN ???

Il vous suffit donc de:

CN=demo.domain.com

En fait, vous n'avez même pas besoin d'utiliser le type de recherche FindBySubjectDistinguishedName. Vous pouvez simplement utiliser FindBySubjectName et simplement mettre le nom de sujet simple à la place:

demo.domain.com
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top