سؤال

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

لأغراض التطوير ، أعتقد أنه يمكنني استخدام makeCert.exe util. لجعل شهادة التطوير.

ما هو أسوأ يمكن أن يحدث ذلك إذا استخدمت هذه الشهادة في بيئة الإنتاج؟

و...

لماذا لا يمكنني استخدام هذه الشهادة في بيئة الإنتاج؟

و ...

ما هي الشهادة التي ستفعلها بالفعل في هذا السيناريو؟

تحرير: أضاف سؤال آخر

أخيرا...

في سيناريو حيث يحتوي موقع الويب على شهادة مثبتة لتوفير دعم HTTPS ، هل يمكن استخدام نفس الشهادة لخدمات WCF أيضًا؟

ملاحظة على طلبي: إنها خدمة عميل وخادم NETTCP. سيقوم المستخدمون بتسجيل الدخول باستخدام نفس اسم المستخدم وكلمة المرور التي يستخدمونها للموقع الذي يتم تمريره في نص واضح. سأكون سعيدًا بتمرير U/N + P/W في ClearText إلى WCF ، لكن هذا لا يسمح به الإطار ويجب أن تكون الشهادة في مكانها. ومع ذلك ، لا أريد شراء شهادة بسبب قيود الميزانية!

(آسف على السؤال الغبي ، لكنني حقًا لا أفهم هذا ، لذا أرحب ببعض المساعدة في هذا).

هل كانت مفيدة؟

المحلول

حسنًا ، لن يحدث شيء كبير إذا كنت تستخدم شهادة مطور في بيئة الإنتاج ، بعد كل شيء ، الشهادة هي شهادة والتشفير الذي توفره هو نفس أي شهادة تجارية.

ومع ذلك ، نظرًا لأن الشهادة لم يتم توقيعها من قبل سلطة شهادة موثوقة ، فإنها لا تضمن العميل ذلك أنت أنت. اسمحوا لي أن أضع هذا بطريقة أخرى: إذا كانت خدمتك عبارة عن صفحة ويب بسيطة ، فسيقول المستعرض أن الشهادة غير صالحة.

شهادة لتوفير SSL في خادم الويب ، هي شهادة تخبر العميل أن المجال هو مجال موثوق به ومتحقق منه ، وأن سلطة الشهادة يمكن أن تهتم بها.

لذلك ، شهادة أدلى بها makecert.exe سيكون مثلك تكتب اسمك في قطعة من الورق وإخباره ، يقول ضابط القانون ، أن رخصة قيادتك.

نصائح أخرى

  1. يجب إصدار الشهادة من قبل سلطة الشهادة المزعومة للثقة. لا يتم الوثوق بالشهادات الموقعة ذاتيا (التي أنشأتها MakeCert وما إلى ذلك) ، وسيحصل كل من سيتصفح موقع الويب الخاص بك على "شهادة غير صالحة" (أكثر تحديداً: "الشهادة غير موثوق بها لأنها موقعة ذاتيًا"). لذا، الحالة الأسوأ, ، لن يذهب الناس إلى موقعك ، لأنهم لا يثقون به.

  2. يمكنك استخدام شهادة الإنتاج الموقعة ذاتيا في الإنتاج ، ولكن لا يمكن المستحسن لأسباب موضحة أعلاه.

  3. يتم استخدام الشهادة لإنشاء اتصال آمن (HTTPS) بين العميل والخادم. بجانب ذلك ، يهدف إلى التحقق من هوية الخادم. لا يمكن ضمان هوية الخادم الخاص بك إذا كانت شهادتك توقيعًا ذاتيًا.

  4. في IIS ، إذا قمت بتثبيت شهادة في موقع ويب ، فإن جميع خدمات WCF التي تم نشرها بموجب موقع الويب قادر على استخدام الشهادة.

باختصار ، استخدم شهادة موقعة ذاتيًا للتطوير (انظر إلى أداة تسمى تشخيصات SSL لسهولة توليد الشهادات في IIS) ، ولكن حقا استخدم شهادة الإنتاج للإنتاج!

"ما هو أسوأ ما يمكن أن يحدث إذا استخدمت هذه الشهادة في بيئة الإنتاج" سيفشل الأمان ، وفشل خدمتك بأكملها.

"لماذا لا يمكنني استخدام هذه الشهادة في بيئة الإنتاج؟"
لا يُعرف العملاء سلطة الشهادة المحددة في الشهادة التي تم إنشاؤها بواسطة العملاء ، وبالتالي لا يمكن التحقق من الشهادة/استخدامها.

"ما هي الشهادة التي ستفعلها بالفعل في هذا السيناريو؟" يتم استخدام المفتاح العام من قبل العملاء لتشفير الاتصال. هذا سوف يمتازف بأن مالك المفتاح الخاص (الخادم في هذه الحالة) فقط يمكنه فك تشفيره مرة أخرى (تشفير المفاتيح القطاعين الخاصين)

أتمنى أن يساعدك هذا،

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