العميل نقطة النهاية شهادة المرجع، وكيفية إيجاد عندما يكون هناك فاصلة في أجزاء الاسم المميز؟
-
22-07-2019 - |
سؤال
ونحن نحاول الرجوع إلى شهادة لتكوين نقطة النهاية العميل في ملف التكوين 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