العميل نقطة النهاية شهادة المرجع، وكيفية إيجاد عندما يكون هناك فاصلة في أجزاء الاسم المميز؟

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

سؤال

ونحن نحاول الرجوع إلى شهادة لتكوين نقطة النهاية العميل في ملف التكوين WCF لدينا.

والتكوين يبدو مثل هذا:

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

لو-شهادة اختبار الخاصية "الموضوع" تبدو مثل هذا:

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

وهذا يعمل، إذا وفرنا ما يلي للسمة findValue أعلاه:

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

ولكن، للحصول على شهادة لدينا من طرف ثالث، وقد أضافوا عنوان كجزء من هذا، وبالتالي فإن القائمة الموضحة أعلاه من معرفات تبدو مثل هذا:

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

ومن الواضح أن فاصلة في الجزء STREET لا تعمل، كسلسلة لدينا الآن على "تاون سنتر" كجزء منفصل مع أي اسم.

وكيف يمكننا تحديد أننا نريد للعثور على شهادة باستخدام هذه القائمة من معرفات؟

CN=demo.domain.com, OU=Company, O=Company, STREET=Mainstreet 1, Town Center, L=City, S=County, C=CountryCode
                                                              ^-- Argh!
هل كانت مفيدة؟

المحلول

وطيب، مع مزيد من التجريب تمكنا من العثور على إجابة أنفسنا.

أولا، لتغليف القيم التي تحتوي على أحرف خاصة، ونحن بحاجة إلى أرفق لهم في علامات اقتباس مزدوجة.

وهذا، مع ذلك، لن يلعب لطيفة مع findName="..." الذي يستخدم أيضا التنصيص، لذلك قمنا بتغيير ذلك إلى علامات الاقتباس المفردة.

وكانت النتيجة نهاية هذا:

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

نصائح أخرى

وهذه ليست إجابة مباشرة على سؤالك، ولكن لم يكن لديك حقا لوضع كل التفاصيل في هناك إذا كنت لا ترغب في ذلك. ينبغي أن CN يكفي ما لم يكن لديك حقا العديد من الأشخاص بنفس CN ؟؟؟

ولذا تحتاج فقط:

CN=demo.domain.com

في الواقع حتى أنك لا تحتاج إلى استخدام FindBySubjectDistinguishedName إيجاد نوع. هل يمكن أن مجرد استخدام FindBySubjectName وضعت للتو اسم الموضوع عادي بدلا من ذلك:

demo.domain.com
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top