فشل SslStream على ملقم TCP للتحقق من صحة شهادة العميل مع RemoteCertificateNotAvailable

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

سؤال

وهذا السؤال هو كل شيء عن حل الخطأ SslPolicyError.RemoteCertificateNotAvailable.

ولقد وضعت خادم TCP مع SSLStream وعميل TCP عن الطرف الآخر.

وأنا مصادقة الخادم مع:

sslStream.BeginAuthenticateAsServer 

وأنا مصادقة العميل مع:

sslStream.BeginAuthenticateAsClient

وأنا تحميل شهادة موكلي من Trusted Publishers - Local Machine.

وكلاهما يعمل على نفس الجهاز.

وحاولت تحميل شهادة العميل من .CER وملفات .PFX بدلا من مخزن الناشرين الموثوقين. ولكن العميل الخادم فشل (عن بعد) شهادة مدقق الاستدعاء من خلال إيجاد ان SslPolicyErrors تمت خطأ RemoteCertificateNotAvailable.

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

المحلول

والارتباط لم يأت من خلال، ولكن هناك مشكلة أستطيع أن بقعة مع قرأه:

و"أنا حملت شهادة موكلي من ناشرون"

وشهادات العميل يعيش عادة في المخزن الشخصي لحساب المستخدم. الشيء نفسه مع شهادات مركز الخدمة (أنها من المحتمل أن يكون مختلفا OID الغرض المقصود المرتبطة بها، على الرغم - "مصادقة العميل" مقابل "مصادقة خادم"). انها تريد ان تكون غريبا أن يكون لديك سيرت مع مفتاح خاص المتاحة في متجر ناشرون، على ما أعتقد.

إذا كنت انقر نقرا مزدوجا فوق شهادة العميل أو الخادم في CertMgr.msc، يجب أن تشاهد "هذه الشهادة لديها خاصة مفتاح" رسالة نحو القاع.

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

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